我是Java的新手,试图理解Java中的异常。
class MyException extends Exception {
void someMethod () {
doStuff();
}
void doStuff() throws MyException {
try {
throw new MyException();
}
catch(MyException me) {
throw me;
}
}
}
该程序给出错误:
java:3:未报告的异常MyException;必须被抓住或宣布被抛出
doStuff();
^
try和catch块在
doStuff()
方法中编写。还有doStuff()
方法“抛出” MyException
,那么为什么还需要在MyException
中抛出someMethod()
? 最佳答案
您确实确实捕获了MyException,但是重新抛出了它,因此需要捕获一个新的活动异常。
这称为检查异常。每次调用doStuff()方法时,都需要将其包装在try / catch中以获取MyException,或者可以声明您的方法也将抛出MyException。
这保证了至少在编码过程中会考虑已知的异常。