java - 使检查异常成为 RuntimeException

标签 java runtimeexception

我正在处理一个遗留系统,它有一个到处都在使用的自定义异常。它的灵感来自 ServletException 类,它说“好吧,只要你的 Servlet 中有异常,你就会想抛出这个 ServletException”。

随着系统的发展(超过 10 年),出现了一个在更高级别捕获异常的更强大的系统,不再需要将每个异常都包装在这个自定义异常中。 (有人可能会说它从来没有,但那是另一回事了。它是一个稳定的应用程序,所以我不会提示太多!!)但我们不会一次重构它们,只是随着时间的推移慢慢重构。

但是,如果自定义异常是运行时异常而不是已检查异常,那将使事情变得更简单。这样我们就不需要在任何地方显式地捕获它,并且尚未重构的遗留代码将继续抛出它,就像它们在发生空指针异常时抛出空指针异常一样。

我的问题是...将曾经检查过的异常设为运行时异常有什么副作用?

除了对不必要的检查和抛出声明的警告之外,我想不出任何其他东西,但如果能从以前走过这条路的人那里得到意见就更好了。

最佳答案

将已检查的异常更改为未检查的异常对现有的工作代码几乎没有实际影响,但您确实需要注意代码中某处的可能性 catch (RuntimeException ...) .此类捕获现在不会拦截您的自定义异常,但如果您不对其进行检查,它们就会拦截。

如果您对抛出该异常(显然是其中大部分)的方法进行任何反射(reflection),您也可能会遇到问题。

关于java - 使检查异常成为 RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25570617/

相关文章:

java - XML 命名空间在 XPath + java 中解析文件时出现问题

java - netbeans 中的单选按钮

java - 使用 Apache PDFBox 解析 PDF 文件

java - 如何拥有必须至少运行一次的 public void 方法

java - 单行 Lambda 和运行时异常 - 未编译?

java - 带有设置数据的 Firestore 自定义文档 ID 不起作用 - CollectionReference

java - 私有(private)成员访问 Java

java - Android 应用程序因 RuntimeException : Unable to instantiate activity, dident find 类而崩溃

java - 正确使用 RuntimeException?

java - JAX-WS 拦截运行时异常以进行日志记录