我听说可以在我的web-App中记录(或做一些其他的)Spring异常,所以我不必手动插入每个“catch(){}”阻止Log-function
有没有人有过Spring-overall-logging的经验?我只想在出现错误时获得通知
答案 0 :(得分:0)
ExceptionHandler是处理Faces生命周期中抛出的意外异常的中心点。在应用程序启动或关闭期间,不得向ExceptionHandler通知任何异常。
有关默认实现的要求,请参阅规范起草文档。可以通过以下两种方式之一将异常传递给ExceptionHandler:
1.)确保不会发现异常或被捕获并重新抛出异常。
这种方法允许JSF.6.2节中指定的ExceptionHandler工具对异常进行操作。
2.)通过使用系统事件工具发布包装异常的ExceptionQueuedEvent。
此方法需要手动发布ExceptionQueuedEvent,但允许在事件中存储有关Exception的更多信息。以下代码是如何执行此操作的示例。
全局异常处理程序 - 异常处理是一个贯穿各领域的问题,应该对我们应用程序中的所有切入点进行处理。我们已经研究过Spring AOP,这就是为什么Spring提供@ControllerAdvice注释,我们可以使用它来定义我们的全局异常处理程序。
Global Controller Advice中的处理程序方法与基于Controller的异常处理程序方法相同,并且在控制器类无法处理异常时使用。
示例代码
@ExceptionHandler(Exception.class)
public ModelAndView getExceptionPage(Exception e, HttpServletRequest request) {
request.setAttribute("errorMessageObject", e.toString());
return model;
}
**这里我们可以捕获基本异常类Exception.class
或任何其他异常类。我们也可以抛出并捕获我们自己的自定义异常类。