ServletException还是IOException?

时间:2012-11-24 05:37:48

标签: java exception servlets ioexception servletexception

......我永远无法决定这两者之间的关系。我总是回到代码并在它们之间切换。

编译时 - 让我们说一个Login类 - 来自一个(扩展的)HttpServlet,它同时运行ServletException和IOException,你只想进一步抛出异常(例如NoSuchAlgorithmException,NamingException)以在页面中看到它您的应用程序稍后会抛弃它:ServletException还是IOException?

PS:我不会尝试捕获所有可能的NoSuchAlgorithmException,NamingException等,因为我可能会错过一个我以前从未见过的真正原因并以错误的方式对待它或者告诉错误的东西用户。

2 个答案:

答案 0 :(得分:0)

这些都不是继承自RuntimeException或从RuntimeException继承为IllegalArgumentException的其他例外。

答案 1 :(得分:0)

IOException有其自身的含义。只有在IO操作中存在问题时才应抛出IOException,例如从文件或URL读取/写入数据。如果我必须在两者之间做出选择,我会选择ServletExcetion

但如果有空间来定义更好的异常处理,那么我想创建自己的自定义异常类,例如MySystemException扩展RuntimeException并将相关的例外包装为MySystemException并将其抛出。