将已检查的异常直接放入UncaughtExceptionHandler会产生什么负面影响?
Thread t = new Thread() {
@Override
public void run() {
try {
verb();
} catch (Exception e) {
getUncaughtExceptionHandler().uncaughtException(this,e);
}
}
};
显然,应用程序会产生(应该是)后果 - 无论谁写了动词(),都认为应该处理这种特殊情况。假设我愿意忽略这一点,还会出现什么问题?
在线程即将终止之前调用ExceptionHandler 会有什么后果吗?
答案 0 :(得分:1)
不应该有负序
如果您没有明确设置自定义处理程序,那么ThreadGroup
方法将是
叫which:
此方法确定Throwable参数是否为实例 的ThreadDeath。如果是这样,没有什么特别的。否则,一条消息 包含线程名称,从线程的getName返回 方法和堆栈回溯,使用Throwable的printStackTrace 方法,打印到标准错误流。
如果您已设置自定义,则最有可能的是它只会记录某些内容。所以你只会看到线程和堆栈跟踪的日志 除非您的自定义处理程序执行某些特定的操作,只有当线程终止时才应该执行,但是从OP开始,似乎情况并非如此。