当Exception
方法声明为这样时,JVM是否处理main()
?
public static void main(String[] args) throws Exception {
// code here
}
答案 0 :(得分:3)
是的,它会打印堆栈跟踪,除非您自己调用它。在这种情况下,你处理它。
答案 1 :(得分:2)
是的,default exception handler由JVM处理异常。
您可以使用以下方法之一在线程,线程组或VM级别更改此行为:
Thread.setUncaughtExceptionhandler()
ThreadGroup.uncaughtException()
Thread.setDefaultUncaughtExceptionHandler()
举个简单的例子:
public class Program {
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.err.println("Uhhh something broke.");
}
});
int a = 5 / 0;
}
}
将输出:
Uhhh something broke.