我最近一直在重新考虑一些Java代码......我发现有很多RuntimeExceptions被抛出(即未经检查的异常)。我创建了自己的已检查异常,并用我自己的异常替换了这些RuntimeExceptions的每个实例。然后,这迫使我检查例外。
话虽如此,我发现更好的检查异常,因为另一个开发人员将确保处理异常...而不是程序只是吃异常而不向用户显示任何内容。
我已经阅读了许多关于未经检查和已检查异常的文章。但是,我仍然觉得我更多地检查了异常,因为它减少了人为错误。
编程有多糟糕,主要是使用检查异常? 有没有其他人觉得他们更喜欢检查异常而不是未经检查的异常?
答案 0 :(得分:5)
我的建议,虽然不同的人对此有不同的意见,但是:
答案 1 :(得分:2)
检查异常看起来很棒,但实际上他们根本无法解决他们设计修复的问题(更多细节请https://arpytoth.com/2016/04/08/the-problem-with-checked-exceptions/)。
Java 不会强迫您处理异常,它只会强制您确认哪些异常可以通过。大多数开发人员使用空块来捕获它们,或者使用throws子句让异常通过。这通常会降低代码质量,使其更加冗长,复杂,有时难以测试,而没有任何显着的好处。另请注意,Java的新功能在检查异常时也不能很好用(例如lambda表达式)。我的建议是避免检查异常并改为使用运行时。