在网上查了相关问题,大多是说运行时异常为程序员代码的问题,应该检查其代码中的Bug,而不应该try catch它。
如果此时有一种情况,数据库蹦掉,抛出运行时异常。此前是否应该处理此情况,提前try掉相关代码?
此问题困扰许久,谢谢大家。
首先,你这句“大多是说运行时异常为程序员代码的问题,应该检查其代码中的Bug,而不应该try catch它”是有问题的!!!不catch打印错误日志,不好定位跟踪错误代码。如果是生产上有BUG,那时间就是金钱。
你可以:
try {
doSomething();
} catch (Exception e) {
// who cares?
}
如果程序在执行过程中出现了异常,那肯定是需要进行解决的,trycatth 是可以防止一些未知的不当操作才会引用,或者故意进行某种问题的获取及判断
如异常发生在try中的第三行,那么前两行的代码是执行完毕且有效的,只是后续的代码不会执行。
你的理解是对的,对于任何可预判的异常都可以通过非 try catch 手段来避免。但前提是你能预知这个异常的发生时间和发生前提是什么,这样才能进一步去布局如何规避。但某些问题是无法通过这种方式避免,特别是多人开发的大型项目。对于多人开发的大型项目,业务逻辑上必然存在交集,有了交集业务盲区也自然会出现,出现业务盲区后,各种奇怪的bug也会出现。因此,对于参与项目的个人而言,使用try catch并不完全是因为知道某个异常会发生,却置之不理,而是在不修改别人的代码情况下所做的一种折中手段。当然了,大量使用try catch肯定会影响性能,但如果只是特定情况下使用,只要贴合项目的业务逻辑,就可以使用。
如果这个业务模块,完全由您一个人负责,其实您可以将这种情况的使用概率降到最低,但如果是多人呢?特别是那种耦合度高或者模块比较多的项目?