如何正确处理servlet中遇到的错误?现在,我继承的应用程序(仅使用纯JSP / Servlet)有一个称为Controller的超类,它扩展了HttpServlet,所有其他servlet都从其中扩展.在Controller类中是一个try和catch块,如下所示:
try { // execute doPost or doGet here } catch (Exception e) { // show a generic error page }
这是正确的做法吗?看起来很笨重,似乎并不总是奏效.我只是一个实习生,所以我没有很多经验.任何建议?我试图让应用程序强大..
解决方法
标准的做法是让您的Servlet的doXxx()方法(例如doGet(),doPost()等)抛出一个ServletException,并允许容器捕获并处理它.您可以使用< error-page>指定要在WEB-INF / web.xml中显示的自定义错误页面.标签:
<error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page>
如果你最终捕获一个异常,你不能优雅地处理,只需将它包装在一个这样的ServletException中:
try { // code that throws an Exception } catch (Exception e) { throw new ServletException(e); }