我对这个主题进行了很多研究,但没有找到真正的答案。
尝试想象一个执行多线程调用 Callable 的程序。为此,我们启动一个具有特定超时的 ExecutorService 来调用所有进程。
所以我们有一个带有多个异常的 try...catch 块:
- CancellationException 超时
- ExecutionException 如果在线程中引发异常
- 突然停止的 InterruptedException...
哲学是只记录消息,还是记录消息和可抛出的(所以堆栈跟踪)?
总结一下,我们应该这样做:
} catch (CancellationException ce) {
logger.error("Timeout. Process cancelled", ce);
}
还是只记录消息错误?
stacktrace 是否被认为只出现在错误中?
谢谢你。