因此,如果我想在我的自定义异常中添加可抛出的原因:
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);
}
}