java - java中使用assert和抛AssetionError异常的区别

标签 java exception exception-handling

做内部逻辑检查,Java有两种方式,

  1. 使用 assert 关键字:例如,assert(x>y)
  2. 手动抛出断言错误:例如,if(y>x) throw new AssertionError();

以上两种方法有什么区别(性能方面、编程灵 active 等? 哪一个被认为是良好的编程习惯?

最佳答案

主要区别在于,assert 不能保证得到处理,除非明确启用断言(通过 java 的 -ea 选项,或以编程方式)。另一方面,抛出 new AssertionError() 将始终有效。

一些阅读资料:Programming with Assertions

关于java - java中使用assert和抛AssetionError异常的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788355/

相关文章:

java - 当数据库中存在更多行时,ResultSet 仅返回一行

java - 是否可以使用 IllegalStateException 捕获所有子异常?

java - 如何从 JNDI NamingException 中提取 "error code"数字?

java - 有一个 try-catch block ,你应该把所有的语句都放在里面还是只放不安全的?

c# - 关于在 C# 中制作可重用的 try/catch block 的建议?

java - 优雅地处理多个文件输入机制

java - C、C++ 和 Java 中的不同结果相同的表达式。为什么?

java - 什么是静态工厂方法?

python - Python 中的回溯对象类型是什么?

c# - 构造调用 Web 服务的代码的最佳方式