我想知道处理异常的更好方法是什么。我的 web 项目有 Struts 2、Spring 和 Hibernate。
异常可能发生在 StrutsAction
或 Biz Layer 或 Data Layer。
如何处理每一层的异常?
在 Struts 中,通过定义一个包含全局异常处理的抽象默认包来处理您可能委托给框架的异常(如果您不想手动处理它)。
并重定向到error_page.jsp
发生此异常的时间。
您可以在 Struts 2 和 Hibernate 的异常处理中找到更详细的描述:
在正常情况下,应该捕获、记录并重新抛出异常。但是在 Struts2 中,您可以通过创建默认的应用程序拦截器堆栈来处理未捕获的异常
<interceptor-stack name="appDefaultStack"> <interceptor-ref name="defaultStack"> <param name="exception.logEnabled">true</param> <param name="exception.logLevel">ERROR</param> </interceptor-ref> </interceptor-stack>
此应用程序未捕获的任何异常都将被记录,然后由全局异常映射处理
<global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> > <global-results> <result name="error">/error_page.jsp</result> </global-results>