有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

我关于代码的问题如下

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

        }
    }
}

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


共 (2) 个答案

  1. # 1 楼答案

    最简单的答案是:这取决于你的具体情况。假设您知道可能会遇到两种不同的异常:称它们为FooExceptionBarException。如果您知道当遇到FooException时,您想告诉用户,您可能想捕获该异常,向其添加一些额外的细节,然后重新浏览它。但是,如果您知道不想重新引用BarException,那么可以定义一个单独的catch子句来单独处理它

    因此,总而言之,这实际上取决于希望如何处理异常

  2. # 2 楼答案

    因为有时候我们需要做不同的事情,有不同的例外

    try {
       doSomethingMightThrowException();
    } catch (IOException e) {
        reConnect();
    } catch (NullPointerException e) {
        createNewConnection();
    } catch (IllegalStateException e) {
        doNotCare();
        justContinue();
    }