我想将这个异常添加到记录器中:
throw new IllegalArgumentException("ex msg");
但是当我这样尝试时,我在“throw ex;”时遇到错误
Exception ex= new IllegalArgumentException("ex msg");
log.error("msg",ex);
throw ex;
知道如何解决这个问题吗? 谢谢
最佳答案
尝试为 ex
使用特定类型,即 IllegalArgumentException ex
或至少 RuntimeException ex
因为 Exception
是一个已检查的异常,如果方法签名中没有throws Exception
,编译器会报错。
差:
public void myMethod() {
throw new Exception(); //this needs to be declared
}
好:
public void myMethod() throws Exception {
throw new Exception();
}
public void myMethod() {
throw new RuntimeException(); //those don't have to be declared
}
您的代码类似于错误示例,因为编译器 thow ex
看起来像 throw new Exception()
(不完全正确,但您应该明白这一点)。
关于java - 向 logger.error 抛出新的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30372673/