我听说可以在我的网络应用程序中使用 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/