1: Where the SQLExceptions be caught?
在数据访问层的DAO类中。如果需要,您可以用自定义DAO异常包装它。此DAO异常又需要作为检查异常进一步处理。
2: Where exceptions should be logged?
在您即将扔掉或传递消息传递框架的时刻。
3: Should unchecked exceptions be logged?
他们肯定会被记录下来。它们应该不是在现实世界中发生的,因为那些在代码逻辑(即开发人员故障)中出现错误的迹象,需要被错误的asap。应该将它们一直抛到容器中,让容器用< error-page>在web.xml中。要记录(并最终邮寄)他们,请使用在错误页面上侦听的过滤器。
4: Should unchecked exceptions be caught at presentation layer, and should they be shown to the user?
他们根本不应该发生。
5: How checked exceptions be handled, which of them to be shown to the user and how?
如果它们是错误的用户输入(例如,不是数字,坏的电子邮件,约束违规等)的结果,则以相同的形式向用户显示它们。否则(例如DB down,DAO异常等)将它一直抛出到错误页面,或者显示错误信息以稍后再试。
6: How should a global exception handler page be used?
至少以用户友好的方式。因此,在相同的布局中,有一些介绍性的“对不起”,如果需要,还有一些错误详细信息和电子邮件地址,以便用户可以联系这种情况。
7: How should struts ActionErrors be used in this context?
以相同的形式向用户显示它们。