servlet 异常处理的另一个思路
我最近在写一个小小的servlet小网站,我在网上看到一些人写得关于servlet异常处理的方法,一种很常见的方法就是在servlet里面用try块包围指定的方法,在catch块里重定向到错误页
比如
try{ someMethod(); }catch(Exception){ 重定向到错误页 }
可是这样有缺点就是,每次遇到这样的方法,都要重复的去写这样的try catch,代码上冗余度很大。
我又了解到另一种异常处理的方法就是在web.xml里面配置,比如
<error-page>
<exception-type>java.io.FileNotFoundException</exception-type>
<location>/ExcepHandler</location>
</error-page>
这样当servlet抛出异常后,由应用服务器根据异常类型重定向到错误页。这样就不用在源码里面写大量重复的try catch代码了
但是这种处理方法有一个局限,那就是异常类型必须是运行时异常,servlet的doGet和doPost方法只会抛出ServletException和IOException,所以我现在有一个想法,就是我把所有的自定义的异常类型从RuntimeException继承下来,把异常类型都作为运行时异常,通过配置web.xml由服务器来完成重定向的工作。
不知道大家平时对重定向错误页是如何处理的,对我这种做法有什么想法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我是自己写的架构,在代码中直接抛出来,在框架中进行处理了。
当然框架中对异常的处理是以plugin的方式。有默认的,也可以自定义。
引用来自“J-will”的答案
引用来自“红薯”的答案
任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理
引用来自“红薯”的答案
任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理
这样不好啊,那怎样区分具体什么地方出了错
回复
在异常页面里输出错误信息啊
任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理