因此,如果我想在我的自定义异常中添加可抛出的原因:

class MyException extends Exception {
    public MyException(String message, Throwable cause) {
        super(message, cause);
    }
}


究竟是什么原因并存在所有原因的列表,或者我也可以创建自定义原因?带有异常处理的代码示例会很好。

最佳答案

您可以使用它来链接异常。

如果您的代码捕获了ExceptionA类型的异常,并且catch子句抛出了ExcpetionB类型的异常,则可以将ExceptionA的实例传递给ExcpetionB的构造函数,因此任何捕获ExcpetionB的代码都将能够发现由于ExcpetionB先被抛出而导致ExceptionA被抛出。

public void someMethod() throws ExcpetionB {
    try {
        // some code that may throw ExceptionA
    }
    catch (ExceptionA excA) {
        throw new ExceptionB ("some message", excA);
    }
}

10-08 20:17