Saj*_*jhu 8 java checked-exceptions
我有一个带有父类的已检查异常的方法,它可以抛出父类和子类的异常
public void method() throws ParentException {
if( false ) throw new ParentException();
else if( true ) throw new ChildException(); // this one is thrown
}
Run Code Online (Sandbox Code Playgroud)
我有一个级联catch块,它首先有子例外
try {
method();
} catch (ChildException e) {
// I get here?
} catch (ParentException e) {
// or here?
}
Run Code Online (Sandbox Code Playgroud)
哪个块会捕获抛出的异常?由于该方法仅显式声明了ParentException,因此ChildException是否会显示为ParentException的实例?
Mak*_*oto 11
该catch块将始终捕获可用的最特定的异常,从继承层次结构开始.
我应该强调你的catch块必须是继承层次结构顺序; 也就是说,您可能不会声明后面跟着一个catch块,因为这是一个编译错误.你有什么(在块方面)是有效的.ParentExceptionChildExceptioncatch
更常见的用例是处理文件IO时; 你可以先捕获FileNotFoundException,然后IOException,如果错误不那么具体FileNotFoundException.
| 归档时间: |
|
| 查看次数: |
3517 次 |
| 最近记录: |