我正在开发一个中等大小的Java Web应用程序,其中使用Struts作为MVC框架和数据访问层的简单JDBC。我一直在寻找这种应用程序中的异常处理最佳实践。我发现了几篇文章,其中有些文章是矛盾的,只会让我更加困惑,而不是把事情弄清楚和简单。有人说,重复使用现有的异常而不是定义特定于应用程序的异常会更好,其他人则会针对系统中可能出现的每一个小问题展示巨大的应用程序特定异常层次。有人说最好不要在数据访问层处理异常并将它们委托给服务层,另一些人则认为数据访问层异常应该在本地捕获,因为将它们委托给服务层会违反两层之间的抽象。等等。Java Web应用程序中的异常处理
如果你让我知道文章/书籍的链接/名称,以表明在这种情况下为你工作的固体解决方案,我将非常感激。解决方案应该至少清除以下几点,并说明理由:
- 哪里发现SQLE错误?
- 如何记录异常?
- 是否应该记录未检查的异常?
- 应该在表示层捕获未经检查的异常,并且它们是否应该显示给用户?
- 如何检查异常处理,哪些要显示给用户以及如何处理?
- 应该如何使用全局异常处理程序页面?
- 在这种情况下应该如何使用struts ActionErrors?
感谢
谢谢你的回应。 关于#3,如果筛选器在错误页面上侦听,我们如何捕获Filter中未处理的异常? – craftsman 2010-01-31 13:17:18
它存储为请求属性,名称为“exception”。另一方面,你也可以通过在try/catch块中放置'chain.doFilter(request,response)'来处理异常并转发到错误页面。 – BalusC 2010-01-31 17:46:40