小编典典

如何在JSP / Servlet应用程序中正确处理异常?

jsp

您如何正确处理servlet中遇到的错误?现在,我继承的应用程序(仅使用简单的JSP /
Servlet)具有一个称为的超类Controller,该超类可以进行扩展HttpServlet,而所有其他servlet都可以从其进行扩展。在Controller该类中是一个try
and catch块,如下所示:

try {
    // execute doPost or doGet here
} catch (Exception e) {
    // show a generic error page
}

这是正确的做法吗?似乎很笨拙,而且似乎并不总是有效。我只是一个实习生,所以我对此没有很多经验。有什么建议吗?我正在尝试使该应用程序更强大。


阅读 277

收藏
2020-06-08

共1个答案

小编典典

做标准的事情是有你的servlet的doXxx()方法(例如doGet()doPost()等)抛出一个ServletException和允许容器捕获并处理它。您可以WEB- INF/web.xml使用<error-page>标签指定要显示的自定义错误页面:

<error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
</error-page>

如果最终抓到一个Exception您无法优雅处理的东西,只需将其包裹成ServletException这样:

try {
    // code that throws an Exception
} catch (Exception e) {
    throw new ServletException(e);
}
2020-06-08