我目前正在使用一个非常简单的MVC框架贝尔·比贝奥的前卫,对于那些不熟悉的人来说,它非常类似Spring (至少在概念上)。我遇到的问题之一是如何正确地处理异常。
我现在正在做这样的事情,
try {
//do something
}catch (Exception ex) {
logger.error("Logging error", ex);
Map model = new HashMap();
model.put("error", ex.getLocalizedMessage());
cc.setScopedVariable("model", model);
cc.forwardToView(ERROR_VIEW);
}本质上,我记录异常,然后转发到错误视图页面。
然而,我认为这并不是正确的做法。它会导致大量的样板代码,而这些代码并不十分干燥。
在web应用程序中处理/记录异常的更好方法是什么?
发布于 2009-08-13 20:16:23
您可以在错误JSP文件中完成所有的日志记录。
将其添加到web.xml文件中。
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>在jsp文件中添加
<%@page isErrorPage="true" %>然后,您可以将日志记录放在<% %>中,并同时显示错误。所有的日志记录逻辑都在一个地方,您的代码将开始变得更干净。
不必在JSP文件中使用scriptlet,您可以将位置指向servlet。servlet可以处理所有处理过程,然后转发到JSP页面。
您还可以将此技术用于不同的异常,因此可以对异常进行不同的处理。
发布于 2009-08-13 20:24:31
有各种各样的异常,所以您应该首先确定如何向用户显示它们。将它们转发到页面以显示错误可能不是它们遇到的所有错误的最佳选择,同时要记住,如果没有上下文显示错误,可能会使某些最终用户感到困惑。
您可以处理的一种方法是记录所有的无关键错误,并在网站上有一个用户可以访问和检查这些错误的位置。(我做了一个项目,我们有一个类似的项目。用户可以查看不会阻止应用程序继续进行的警告和错误。)
您可以将它们返回到发生错误的页面,并在其中填充错误消息。AJAX/Comet可以用于向用户显示实时错误,而不需要从发生错误的页面中删除它们。
https://stackoverflow.com/questions/1274293
复制相似问题