Java异常-重要吗?

Java异常-重要吗?,java,Java,我今天有一个讲座,教授回顾了Java中的基本面向对象概念。有一次,她说“异常对代码非常重要,您需要处理所有可能的情况。” 我一直认为许多try{…}catch(…){…}…代码部分是糟糕代码设计的标志。我知道各种Java类都需要try-catch部分,但我不认为捕获所有(或许多)可能的异常是良好设计的一部分 如果您遇到任何异常并且没有处理它,那么您的程序要么无法编译,要么在运行时崩溃。如果不需要很多try-catch语句,可以让一个方法声明一些异常。但根据我的说法,检查异常应该始终以任何一种方式

我今天有一个讲座,教授回顾了Java中的基本面向对象概念。有一次,她说“异常对代码非常重要,您需要处理所有可能的情况。”


我一直认为许多
try{…}catch(…){…}…
代码部分是糟糕代码设计的标志。我知道各种Java类都需要try-catch部分,但我不认为捕获所有(或许多)可能的异常是良好设计的一部分

如果您遇到任何异常并且没有处理它,那么您的程序要么无法编译,要么在运行时崩溃。如果不需要很多try-catch语句,可以让一个方法声明一些异常。但根据我的说法,检查异常应该始终以任何一种方式处理

这更多的是基于应用程序设计的主观讨论。显然,您必须捕获所有可能被抛出的异常。否则你的程序就会崩溃。不过,你通常不会有那么多的试捕。在有效的JavaWell中检查项目58和59,您必须捕获(或列出抛出的)所有“已检查”异常,否则您的程序甚至无法编译。(谢谢你,Goodenough先生!)这取决于意见。我个人更倾向于检查方法的输入,如果有什么东西会导致异常,则抛出异常。这样,您就不必回滚在抛出异常之前可能发生的任何状态更改。如果您的代码存在引发异常的问题,那么bug跟踪器就是为了这个。再说一次,我所做的大部分编码都与游戏有关,在游戏中跳过导致问题的内容并记录警告会更快/更简单。对于更多的enterprise-y代码来说,处理异常更为重要。当然,通常一开始就应该避免引起NullPointerException。不过,NPE在一开始就不可能实现,通过一些良好的编码实践和相关测试,这些是相当容易实现的。@HotLicks Jeroen,我只想举一个例外的例子。没有特定于NullPointerException的内容。通常不会在程序中包含NPE try/catch。只有选中的异常才能被捕获或列在
throws
子句中。