未捕捉例外處理順序,執行緒setUncaughExceptionHandler()設定的Thread.UncaughExceptionHandler、ThreadGroup.uncaughException(),再來是預設的Thread.UncaughExceptionHandler
var group = new ThreadGroup("group");
var thread1 = new Thread(group, () -> {
throw new RuntimeException("thread 1 測試例外");
});
thread1.setUncaughExceptionHandler((thread, throwable) -> {
System.out.printf("%s: %s%n", thread.getName(), throwable.getMessage());
});
改變了顯示堆疊追蹤的方式