gpt4 book ai didi

java - 面临 Java 中的自定义异常问题

转载 作者:行者123 更新时间:2023-12-01 22:14:39 25 4
gpt4 key购买 nike

我不断收到错误:TestException.java:8: 错误: 未报告的异常 Throwable;必须被捕获或宣布被抛出

throw new ParentException().initCause(new ChildException().initCause(new SQLException()));

任何想法,我知道缺少一些微不足道的东西,我不太容易想到,谢谢,不要只看表面值(value),我只是想刷新我的理解。

    import java.sql.SQLException;

public class TestException{

public static void main(String[] args) {

try{
throw new ParentException().initCause(new ChildException().initCause(new SQLException()));
}
catch(ParentException | ChildException | SQLException e){
e.printStackTrace();
try{
Thread.sleep(10*1000);
}
catch(Exception et){
;
}
}

}
}

class ParentException extends Exception{

public ParentException(){
super("Parent Exception is called");
}

}

class ChildException extends Exception{

public ChildException(){
super("Child Exception is called");
}

}

最佳答案

initCause 返回一个 Throwable

这意味着您实际上抛出的是 Throwable 而不是 ParentException,因此编译器会提示您抛出的是 Throwable 但没有捕获它。

您可以通过更改 ParentExceptionChildException 来解决此问题,这样它们不仅会收到错误消息,还会收到原因。然后您可以调用Exception constructor that receives a message and a cause

关于java - 面临 Java 中的自定义异常问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31336197/

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