如果我的代码抛出异常,我只能在java中捕获一个异常。但为什么我们需要单独的例外(Nullpointer,classnotfound等)?如果我们只有一个例外而不是不同类型的例外,这样可以吗?如果我错了,请纠正我。
我的代码问题如下。
class Test {
void method(){
try{
// some code....
}
catch(Exception e){
}
}
}
如果Java允许我捕获泛型异常意味着为什么我们需要不同类型的异常?
答案 0 :(得分:5)
有时我们需要做不同的事情,但有不同的例外。
try {
doSomethingMightThrowException();
} catch (IOException e) {
reConnect();
} catch (NullPointerException e) {
createNewConnection();
} catch (IllegalStateException e) {
doNotCare();
justContinue();
}
答案 1 :(得分:1)
最简单的答案:这取决于您的具体情况。让我们说你知道你可能会遇到两个不同的例外:称他们为$("#txtHint tr").each(function() { // cicle through each row
el=$this.find( "td:eq(2)" ) // get td with index==2.(firs==0, secon==1)...
if (parseFloat(el.html()<=0) { // check if it's 0 or lower
el.append( $( "Your button or link html here" ) ); // add button
}
});
和FooException
。如果您知道当遇到BarException
时,您想告诉用户,您可能希望捕获该异常,为其添加一些额外的细节,然后重新抛出它。但是,如果您知道自己并不想重新计算FooException
,则可以定义一个单独处理它的BarException
子句。
总而言之,这完全取决于你希望如何处理异常。