java强制开发人员处理未经检查的异常

标签 java exception unchecked

有没有办法让开发人员用户处理代码中所有未检查的异常,以便在处理所有未检查的异常之前代码不会编译?我想强制用户处理异常

iterator.next()

最佳答案

不,你不能。通常,如果你想强制用户处理未检查的异常,你可以手动捕获它们并将它们包装在已检查的异常中

例如

Integer a;
try {
    a = 1;
}
catch (NullPointerException e) {
     throw new Exception(e);
}

并且 a 为 null 将抛出 NPE。然后它被包装在一个检查过的 Exception 中。 (这里的异常可能过于通用,因此您可能必须创建自己的已检查异常类)

此模式的问题在于您必须到处检查可能存在未检查异常的地方。这些未声明为方法签名的一部分,因此可能意味着通过 API 进行拖网。

或者你可能更脏,有很多 try/catch block 来捕获 Exception。 Exception 是 RuntimeException 的父类(super class),因此它会捕获未经检查的异常。

我不确定你想做的是正确的方法。未经检查的异常通常是程序员错误,因此确实应该被捕获。它们通常是代码中的错误。 (关于未检查/检查异常的点存在大量争论,您可以谷歌搜索)

关于java强制开发人员处理未经检查的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12597872/

相关文章:

javax.servlet.ServletException : java. lang.NoSuchMethodException:操作[/common/DepartmentAction]不包含指定的方法

java - 需要帮助将 awt 应用程序与 MS Access 数据库连接

java - TreeMap 通用参数警告

javascript - getElementsByName 返回类型错误?

java - 如何模拟 java.util.Random 类的依赖项?

java - 从 arraylist java 获取值?

java - 字节码如何表示另一个类

java - BoxLayout can't be shared error while setting it for JPanel 如何解决?

C# Image.Clone 内存不足异常

jquery - 如何检测用户是否取消选中复选框?