java - 使用 Spring 记录异常

标签 java spring jsf exception logging

我听说可以在我的网络应用程序中使用 Spring 记录(或执行其他操作)异常,因此我不必在每个“catch(){}” block 中手动插入日志函数.

有人有 Spring-overall-logging 的经验吗?我只是想在出现错误时得到通知

最佳答案

ExceptionHandler 是处理 Faces 生命周期期间引发的意外异常的中心点。不得向 ExceptionHandler 通知应用程序启动或关闭期间发生的任何异常。

有关默认实现的要求,请参阅规范散文文档。异常可以通过以下两种方式之一传递给 ExceptionHandler:

1.)确保异常不被捕获,或者被捕获并重新抛出。

此方法允许 JSF.6.2 节中指定的 ExceptionHandler 工具对异常进行操作。

2.)通过使用系统事件工具来发布包装异常的ExceptionQueuedEvent。

此方法需要手动发布 ExceptionQueuedEvent,但允许在事件中存储有关异常的更多信息。以下代码是如何执行此操作的示例。

全局异常处理程序 – 异常处理是一个横切关注点,应该对我们应用程序中的所有切入点进行处理。我们已经研究了 Spring AOP,这就是 Spring 提供 @ControllerAdvice 注释的原因,我们可以将其与任何类一起使用来定义全局异常处理程序。

全局 Controller 建议中的处理程序方法与基于 Controller 的异常处理程序方法相同,并在 Controller 类无法处理异常时使用。

示例代码

@ExceptionHandler(Exception.class)
    public ModelAndView getExceptionPage(Exception e, HttpServletRequest request) {
            request.setAttribute("errorMessageObject", e.toString());
            return model; 
    }

** 在这里我们可以捕获基本异常类Exception.class或任何其他异常类。我们还可以抛出和捕获我们自己自定义的异常类。

关于java - 使用 Spring 记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24489719/

相关文章:

javascript - 如何将 Angular 8 项目构建为 .war 文件

java - 如何判断数据库是否已关闭或不可用?

jsf - 显示来自 Backing Bean 的 Primefaces confirmDialog

JSF 2.0 : How to skip JSR-303 bean validation?

css - 如何将 JSF 组件居中对齐

java - 通过java数组访问float变量

java - 如何为 Java EE 开发人员升级 Eclipse?

java - STS : Imported projects are showing compilation error with triangle symbol

java - org.hibernate.MappingException : Repeated column in mapping for entity:. ..column:added_by(应使用 insert ="false"update ="false"进行映射)

java - 如何将 "merge"两个及更多 JAR 合并为一个?