由于代码块可能引发大量异常,我必须捕获通用异常,如下所示:
...
try {
//some scandalous code
scandalousMethod();
} catch (Exception e) {
log.error(String.format("'%s'", e.class.getName())); //Need suggestions here
}
...
我需要记录 catch block 中捕获的异常类型。我认为 e.class.getName() 不起作用。有什么建议吗?
最佳答案
你只需要做:
e.getClass()
而不仅仅是e.class
。 getClass
方法在 Object
上定义(因此它可用于所有引用类型)并在运行时查找对象的类型。
顺便说一句,我不知道您使用哪个日志框架,但大多数框架都有将异常作为参数的重载。这很有用,因为可以将记录器设置为打印完整的堆栈跟踪,而不仅仅是其方法。它会是这样的:
log.error("my specific message", e);
关于java日志异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060340/