为什么在Java中使用不同类型的异常?

时间:2018-02-12 11:24:00

标签: java exception

如果我的代码抛出异常,我只能在java中捕获一个异常。但为什么我们需要单独的例外(Nullpointer,classnotfound等)?如果我们只有一个例外而不是不同类型的例外,这样可以吗?如果我错了,请纠正我。

我的代码问题如下。

class Test {
    void method(){
        try{
            // some code....
        }
        catch(Exception e){

        }
    }
}

如果Java允许我捕获泛型异常意味着为什么我们需要不同类型的异常?

2 个答案:

答案 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子句。

总而言之,这完全取决于希望如何处理异常。