|
|
1
72
AssertionError )如果它的条件是假的。断言为您提供了一种简化的方法来记录、检查和强制执行代码的正确性标准。好处是提供了一个语言级的钩子来定义和操作这些正确性条件。如果您希望启用或禁用它们(关于这是否是一个好主意存在争议),您可以从JVM命令行执行此操作。下面的一些注释者注意到断言在默认情况下是禁用的,除非在调试模式下运行;我的实践是在包装器脚本中随时添加“-ea”(enable assertions)。即使在对性能敏感的代码中,对我来说,这种权衡也有利于我从断言中获得的安全性/正确性信心。 Assertions at Oracle API Description for AssertionError 请注意预期或意外失败(异常)与断言失败之间的区别——断言失败记录了程序员的假设,表明程序不正确,而不是意外的外部条件或预期的异常条件。 如果断言失败,解释是程序员误解或错误地表达了程序 有效Java项目#38“检查参数有效性”( Google Books , Amazon.com )提供了参数检查和断言的适当使用之间的区别的有用表示。 Enabling assertions in netbeans Assertions vs. Exceptions ), ( Near duplicate, asking for examples ), ( Badly named, but very similar content ) |
|
|
2
5
|
|
|
3
4
如其他人所建议的那样,使用断言进行强制检查是一种错误的做法 危险行为 当其他开发人员使用您的库时会发生什么?或者系统管理员或高级用户忘记,或者更糟的是不知道,使用 运行时标记?你丢了所有的支票,就是这样。 远离的 应用程序中的任何特性或优点都不应该依赖于断言。
作为背景,在C/C++中,断言使用了相同的方式。在C/C++中,开发人员通常可以通过
|
|
|
4
0
准确地说,你的问题是: Assert用于验证语句的条件。
大多数人将assert用于以下字符串用例:(但我个人不喜欢使用assert):
我更喜欢使用干净的谷歌番石榴,它的作用是:
更多信息: http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/base/Strings.html |
|
|
5
-2
您可以在开发过程中使用它来启用某些东西,然后在实时站点上完全禁用它。例如
debug语句将在活动站点上增加零开销。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |