您如何正确处理servlet中遇到的错误?现在,我继承的应用程序(仅使用简单的JSP / Servlet)具有一个称为的超类Controller,该超类可以进行扩展HttpServlet,而所有其他servlet都可以从其进行扩展。在Controller该类中是一个try and catch块,如下所示:
Controller
HttpServlet
try { // execute doPost or doGet here } catch (Exception e) { // show a generic error page }
这是正确的做法吗?似乎很笨拙,而且似乎并不总是有效。我只是一个实习生,所以我对此没有很多经验。有什么建议吗?我正在尝试使该应用程序更强大。
做标准的事情是有你的servlet的doXxx()方法(例如doGet(),doPost()等)抛出一个ServletException和允许容器捕获并处理它。您可以WEB- INF/web.xml使用<error-page>标签指定要显示的自定义错误页面:
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这样:
Exception
try { // code that throws an Exception } catch (Exception e) { throw new ServletException(e); }