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