shi*_*ike 9 java logging exception-handling
如果我在已知异常的情况下使用记录器,那么e.printStackTrace()对于未知异常有什么问题?
我总是被告知不要这样做 - 但没有理由
以下示例
try {
dostuff();
} catch (AException ae) {
logger.error("ae happened");
} catch (BException be) {
logger.error("be happened");
} catch (CException ce) {
logger.error("ce happened");
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
Man*_*res 14
因为它不使用记录仪系统,它会直接到stderr具有被避免.
编辑:为什么必须避免直接写入stderr?
在回答你的问题时,@ shinynewbike,我略微修改了我的答案.它有什么要避免的编写直接到stderr不使用logger能力.
loggers 提供有用的功能来按优先级和包更改日志记录跟踪,除此之外,它们还允许将跟踪重定向到不同的输出机制...队列,文件,数据库,流......
直接写入System.err或System.out丢失这些功能时,如果混合使用会更糟糕logger,System.err.write最终可能会在不同的"文件"中获得跟踪,这将使调试系统变得困难.
| 归档时间: |
|
| 查看次数: |
4221 次 |
| 最近记录: |