在我的应用程序中,我想在finally语句中关闭我的光标,如下所示:
Cursor cursor = null;
try {
// some code
} finally {
cursor.close();
}
我的IDE突出显示cursor.close();
并告诉:
此方法可以生成
nullPointerException
并建议纠正它(我使用intelij idea):
第一:
assert cursor != null;
cursor.close();
第二
if (cursor != null) {
cursor.close();
}
我想知道它们之间有什么区别,哪种方式更好?
答案 0 :(得分:5)
仅当-ea
(启用断言)作为参数传递给JVM时,才会执行Java断言。如果启用了断言并且断言的布尔表达式的计算结果为false
,则将抛出AssertionError
。所以断言实际上只是用作调试功能。
您应该定义使用if
语法。
请注意,如果booleanFlag为assert booleanFlag : message;
,还会有message
语法将AssertionException
作为消息传递给false
。 < / p>