在Java中统一异常格式

时间:2017-03-14 15:50:43

标签: java exception error-handling exception-handling try-catch

我正在编写一个Java应用程序,并且我希望我的异常具有统一格式。类似的东西:

try{
//...
} catch(Exception e){
   log(clazz.getSimpleName() + ":" + e.getMessage() + ":" + e);
}

这意味着日志中的每个异常都将呈现以下方面,大致如下:

<class_name>.java: <message>: <exception> 

我总是可以使用ExceptionDealer方法编写一个“static”类,该方法记录接收类名和异常实例本身的异常,但我不确定这是否会过度。

有没有优雅的方法呢?

1 个答案:

答案 0 :(得分:1)

您可以抛出自定义异常并在构造函数中登录。

public class CustomException() extends Exception {

  public CustomException(Exception ex) {
    super(ex);
    log(ex.getStackTrace[0].getClassName() + ":" + ex.getMessage());
  }
}

然后在catch

} catch(Exception e){
   throw new CustomException(e);
}