
比如这样一个东西:
if (immutable) { LOGGER.error("正试图改动被设置为不允许变动的数据!"); throw new IllegalStateException("正试图改动被设置为不允许变动的数据!"); } 这样到时候会导致错误信息 正试图改动被设置为不允许变动的数据 重复出现,感觉上很不优雅。。
而 logback 或者说常见的 java 日志系统又不允许 log 的参数仅仅只有一个 Exception 的实例,必须带上信息。
或者说不应该使用异常来中断后续流程?记录 error 后使用 return 结束此函数?可是如此仅仅只是这个函数内部之后的语句不调用了,那调用这个函数的外部却还可能继续执行。。
谢谢
1 jedrek Apr 24, 2021 只在上层捕获记录日志 |
2 ErrorMan Apr 24, 2021 > 而 logback 或者说常见的 java 日志系统又不允许 log 的参数仅仅只有一个 Exception 的实例,必须带上信息。 没听说过这样的限制,直接传异常给 logger 一般都能自动打印堆栈和错误吧 |
3 billlee Apr 24, 2021 一般也不会到处捕获 rethrow 吧,我一般是出错处打 error 日志,然后在最外层打 exception 日志,最多就打两遍。 |
4 catch 后 log 再 throw,security 源码就有这样写的 |