是否有使用以下两个关于异常的代码的最佳实践.
//code1
} catch (SomeException e) {
logger.error("Noinstance available!", e.getMessage());
}
//code2
} catch (SomeException e) {
logger.error("Noinstance available!", e);
}
Run Code Online (Sandbox Code Playgroud)
我什么时候应该使用异常的getMessage方法?
Dav*_*INO 24
第一个不编译,因为该方法error接受String第一个参数和Throwable第二个参数.
e.getMessage()不是Throwable.
代码应该是
} catch (SomeException e) {
// No stack trace
logger.error("Noinstance available! " + e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
和....相比
} catch (SomeException e) {
// Prints message and stack trace
logger.error("Noinstance available!", e);
}
Run Code Online (Sandbox Code Playgroud)
第一个只打印一条消息.第二个也打印整个堆栈跟踪.
如果需要打印堆栈跟踪,则取决于上下文.
如果您已经知道为什么可以抛出异常,那么打印整个堆栈跟踪并不是一个好主意.
如果您不知道,最好打印整个strack跟踪以轻松找到错误.
| 归档时间: |
|
| 查看次数: |
37778 次 |
| 最近记录: |