The*_*eys 6 java exception-handling try-catch
示例#1:
try { fileChooser.setSelectedFile(new File(filename)); }
catch (NullPointerException e) { /* do nothing */ }
示例#2:
if (filename != null)
fileChooser.setSelectedFile(new File(filename));
出于性能或稳定性(或任何其他原因),#1本质上是不好的,还是只是有点不同?这不是一个很好的例子,因为#1优于#2没有优势,但在不同情况下可能存在(例如,可读性提高,代码行数减少等).
编辑:共识似乎是#1是禁忌.最受欢迎的原因:开销
此外,@ Raph Levien有一个很好的见解:
避免#1的一个原因是它会中毒你使用异常断点的能力.正常运行的代码永远不会故意触发空指针异常.因此,将调试器设置为每次发生时都停止是有意义的.在#1的情况下,您可能会例行地获得此类异常.除其他正当理由外,还有潜在的性能影响.
另外,请参阅链接以获取更多深度.
绝对#2是一个更好的选择.不应将异常处理用作程序控制流中的构造.应该使用例外来处理不受程序员控制的情况.在此示例中,您可以检查fileChooser是否为null,以便您可以控制.
| 归档时间: |
|
| 查看次数: |
2804 次 |
| 最近记录: |