public class X {
public void foo() throws Exception{
System.out.print("hi ");
throw new Exception();
}
public static void main(String[] args) throws Exception {
X c = new X();
c.foo();
}
}
在我的foo()方法中,我抛出异常并使用throws传播Exception。在我的main()方法中,我再次传播我的异常。 当我编译它工作正常。
我的问题是:为什么我不需要处理这个throw new Exception()
?谁在照顾这个?
答案 0 :(得分:0)
它会被抛到错误的控制台上
main方法声明“抛出异常”。
删除它,它将不再编译。
答案 1 :(得分:0)
每个线程都有一个handler用于未捕获的异常 - 终止线程的异常。默认异常处理程序在Throwable
上调用终止线程的printStackTrace()
,除非错误是ThreadDeath
.的实例。您可以通过setting a custom handler,更改特定线程上的此行为一组线程extending ThreadGroup
,或所有线程installing默认处理程序。