servlet 异常处理的另一个思路

发布于 2021-11-04 03:55:43 字数 869 浏览 880 评论 6

我最近在写一个小小的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

本王不退位尔等都是臣 2021-11-10 21:40:44

我是自己写的架构,在代码中直接抛出来,在框架中进行处理了。
当然框架中对异常的处理是以plugin的方式。有默认的,也可以自定义。

无法言说的痛 2021-11-10 21:39:25

引用来自“J-will”的答案

引用来自“红薯”的答案

任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理

各自安好 2021-11-10 21:13:13

引用来自“红薯”的答案

任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理

明媚如初 2021-11-09 12:18:47

这样不好啊,那怎样区分具体什么地方出了错

苍暮颜 2021-11-07 14:25:37

回复
在异常页面里输出错误信息啊

带上头具痛哭 2021-11-05 18:21:45

任何异常发生最终都会导致 500 错误,不如直接定义一个 500 错误处理页面,省得在 web.xml 定义太多的异常处理

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文