【发布时间】:2013-09-05 19:07:49
【问题描述】:
所以,我知道这听起来有点极端,但我想说明一点:
好的。所以我的代码并不关心抛出了什么样的异常,99.9% 的时间如果抛出异常,它无论如何都会处理它。
现在,我为什么还要费心在我的代码中抛出 \ 创建新异常? 显然,我使用的所有库都已经抛出它们,而且信息量也非常丰富。
为我的方法传递了一个空对象?谁在乎,我会自动抛出一个空指针异常。
你能否提出一个很好的论点,为什么我应该创建新的异常并抛出它们?
编辑我的意思:
为什么要这么麻烦:
public myMethod() {
try {
doStuff1();
}
catch(Exception e) {
throw new Exception("Error in doStuff1");
}
try {
doStuff2();
}
catch(Exception e) {
throw new Exception("Error in doStuff2");
}
什么时候可以使用:
public myMethod() {
doStuff1();
doStuff2();
}
【问题讨论】:
-
许多好的问题会根据专家的经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。
-
你的意思是声明新的异常classes,还是新的异常instances?你的问题目前还不清楚。如果你能提供具体的例子会很有用。
-
正如@hexafraction 建议的那样,这是一个相当主观的问题,围绕它所处的上下文会有很多不同的意见。您的编程级别目前对于阅读您的问题的用户来说是不确定的,所以我们不知道您是否编写了任何实际需要适当异常处理的程序。您建议使用库的概念也可能表明您从未创建过自己的库,这导致您认为您认为异常处理毫无意义。
-
乔希,你几乎把它钉在了头上,我有什么办法可以理解异常的必要性(不创建库):)
-
当您使用别人编写的库时,可能不需要抛出异常(尽管您需要捕获由库方法抛出的异常)。但是如果你自己编写了一个库,其他人会使用它,你应该警告他们一个方法可能会抛出某些用户需要捕获的异常。
标签: java exception exception-handling try-catch