【发布时间】:2012-04-30 16:53:34
【问题描述】:
最后,我想
if (badThingsHappen) {
log the issue
throw exception with description
}
这里明显的冗余是异常描述和要记录的消息通常是相同的。
这看起来不必要的冗长
if (badThingsHappen) {
logger.error("oh no! not again!");
throw new AppException("oh no! not again!");
}
声明临时字符串感觉不对
if (badThingsHappen) {
String m = "oh no! not again!";
logger.error(m);
throw new AppException(m);
}
是否可以让 Exception 的构造函数处理日志记录?有没有更好(更清洁)的方法?
【问题讨论】:
-
我认为您不需要在异常之前记录语句,您可以在自定义异常或通用异常中定义消息
-
假设您的异常被调用类捕获(希望是这种情况),大多数时候,您不想记录并重新抛出,因为调用类可能也会记录。
-
你考虑过AOP吗? voelter.de/data/articles/aop/aop.html
-
@assylias 我明白你的意思.. 就本程序而言,我想在问题发生时立即记录。但我明白你的意思
-
我同意 assylias,记录异常算作“处理”异常。它应该由优雅地处理它的 catch 语句来完成。
标签: java error-handling