【发布时间】:2020-12-20 17:49:40
【问题描述】:
对于未经检查的(运行时)异常,这是可以理解的。它们实际上是通过堆栈传播的。但是为什么说受检异常不是呢?是的,我们必须声明(抛出)或处理(try-catch),但为什么在这种情况下不称为“传播”?让我给你一个基本的例子:
public class Main {
void m() throws IOException {
throw new java.io.IOException("device error");//checked exception
}
void n() throws IOException {
m();
}
void p(){
try{
n();
}catch(Exception e){System.out.println("exception handled");}
}
public static void main(String args[]){
new Main().p();
}
}
在我看来,我只是做了一个“链接”,效果很好。那么为什么文档说“默认检查不传播”?
【问题讨论】:
-
您能否为该声明链接一个来源?
-
是的,请问您是从哪里引用的?我不知道有人这么说。
-
@Zabuzard here,我怀疑。
标签: java exception chaining propagation checked-exceptions