cod*_*leb 10 java exception-handling exception
下图显示"Checked"和"Unchecked"异常是其子类Exception.我发现你需要捕获一个令人困惑Exception但你不需要捕获一个RuntimeException直接继承的Exception.有没有理由让开发人员不让我们抛出异常而不需要抓住它们?
更具体地说:为什么你只能忽视RuntimeExceptions它和它的孩子?为什么没有一个被引入的类被引入CheckedException extends Exception,你只需要抓住它并且它是孩子们?
令人困惑的部分是,您可以RuntimeException毫无问题地将所有内容丢弃,但是当您向上移动到Exception层次结构中时,您需要在某个时刻捕获它.这很令人困惑,因为"抽象"通常会起作用.你向上移动的越多,所有东西都越简单,越多.这不是这种情况.你移动得越多,你就越需要做(比如,在到达后放置try/catch Exception).
如果Exception未选中,那么您可以隐式地将已检查的异常转换为未经检查的异常,这意味着您可以抛出已检查的异常而不会像以下那样捕获它们:
public void f() {
Exception e = new IOException();
throw e;
}
Run Code Online (Sandbox Code Playgroud)
并且使用重写方法,如果抛出一个更具体的异常,可以添加捕获不在超类中的异常的需求:
public void f() throws Exception {
}
...
@Override
public void f() throws IOException {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |