java - 统一 Java 中的异常格式

标签 java error-handling exception try-catch

我正在编写一个 Java 应用程序,并且我希望为我的异常采用统一的格式。像这样的东西:

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

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

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

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

有什么优雅的方法可以做到这一点吗?

最佳答案

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

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);
}

关于java - 统一 Java 中的异常格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42790610/

相关文章:

java - java中需要逻辑清理帮助

angular - Angular 7注册表单错误处理中出现错误,例如,如果电子邮件丢失@

error-handling - 如何隐藏猫的错误?

java - finally 和 write after catch 的区别

WPF:如何使用 BackgroundWorker 处理错误

python - Django:如何在语法错误上向用户获取模板调试信息

java - Mockito - 无效使用 MatchersException

java - 当特定 jsp 仅使用 "../folder/image.jpg"运行时,为什么 'right-click-> run on server' 可以工作

java - 如何找到JPA的版本?

c# - 如何在 WPF 中显示未处理异常的堆栈跟踪报告