1

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

当你在编码时——比如说一个登录类——来自一个(扩展的)HttpServlet,它同时包含 ServletException 和 IOException,而你只想进一步抛出你的异常(例如 NoSuchAlgorithmException、NamingException)以在应用程序的页面中看到它稍后,您将其抛出哪一个:ServletException 或 IOException?

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

4

2 回答 2

0

这些都不是,只是继承自或从as继承的RuntimeException另一个异常。RuntimeExceptionIllegalArgumentException

于 2012-11-24T05:40:57.633 回答
0

IOException有自己的意义。IOException仅当 IO 操作出现问题时才应抛出An ,例如从文件或 URL 读取/写入数据。如果必须在两者之间做出选择,我会选择ServletExcetion

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

于 2012-11-24T05:45:31.927 回答