gpt4 book ai didi

java - 如果继承了另一个Exception,Java会多次捕获一个Exception吗?

转载 作者:行者123 更新时间:2023-12-02 11:00:15 27 4
gpt4 key购买 nike

给定这些类:

public static class SuperException extends Exception {
}


public static class MyException extends SuperException {
}

这发生在运行时:

try{
throw new MyException();
} catch (MyException e) {
catcher1();
} catch (SuperException e) {
catcher2();
}

将调用哪些方法?只是第一个?两个都?我编写 catch block 的顺序有什么区别吗?

最佳答案

只是第一个(catcher1)。执行第一个匹配的catch block ,而不是其他 block 。

使用问题中的代码,第二个 catch block 无法访问并且无法编译。但是,如果您的 try block 包含可能抛出 MyException 的代码,以及可能抛出非 MyException 的 SuperException 的代码,如果您想以不同于 SuperException 的方式处理 MyException,您可以同时拥有这两个 block (并且您希望按该顺序排列它们)。

关于java - 如果继承了另一个Exception,Java会多次捕获一个Exception吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397344/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com