gpt4 book ai didi

Try 中的 Java 断言有多个捕获

转载 作者:行者123 更新时间:2023-11-30 11:04:30 31 4
gpt4 key购买 nike

场景:

class Assert {
public static void main(String []args) {
try {
assert false;
}
catch (RuntimeException re) {
System.out.println("In the handler of RuntimeException");
}
catch (Exception e) {
System.out.println("In the handler of Exception");
}
catch (Error ae) {
System.out.println("In the handler of Error");
}
catch (Throwable t) {
System.out.println("In the handler of Throwable");
}
}
}

我期待“在 Error 的处理程序中”,因为 AssertionError 是 Error 的子类,但它不显示任何内容并正常终止。然后检查输出我在错误处理程序之前添加了这个捕获处理程序。

catch (AssertionError t) {
System.out.println("In the handler of Throwable");
}

知道捕获错误不是一个好习惯,但如果我们不需要捕获程序未崩溃的原因,它会正常终止吗?

最佳答案

默认情况下断言是禁用的,当您使用 java 执行代码时,在命令行中添加 -ea:

java -ea Assert

关于Try 中的 Java 断言有多个捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30000798/

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