针对检查异常的情况
多年以来,我一直无法获得以下问题的正确答案:为什么某些开发人员如此反对检查异常? 我进行了无数次对话,阅读了博客上的东西,阅读了布鲁斯·埃克尔(Bruce Eckel)所说的话(我看到的第一个反对他们的人)。 我目前正在编写一些新代码,并非常注意我如何处理异常。 我正在尝试查看“我们不喜欢检查的异常”人群的观点,但我仍然看不到它。 我的每一次对话都以相同的问题为结尾而结束...让我进行设置: 总体而言(根据Java的设计方式), Error 是针对不应该被抓到的东西(VM有花生过敏症,有人在上面撒了一罐花生) RuntimeException 适用于程序员做错的事情(程序员走出了数组的结尾) Exception ( RuntimeException 除外)适用于程序员无法控制的事情(写入文件系统时磁盘已满,已达到该进程的文件句柄限制,并且您无法打开其他文件) Throwable 只是所有异常类型的父级。 我听到的一个常见论点是,如果发生异常,那么开发人员要做的就是退出程序。 我听到的另一个常见论点是,检查异常会使重构代码更加困难。 对于“我要做的就是退出”参数,我说即使您要退出,也需要显示一条合理的错误消息。 如果您只是在处理错误,那么当程序退出时如果没有明确说明原因的话,您的用户将不会过分高兴。 对于“它很难重构”人群,这表明未选择适当的抽象级别。 与其声明一个方法抛出