java - 我怎样才能让 Eclipse(或 javac)警告过度包容的 throws 条款

标签 java eclipse exception-handling javac throws

我正在处理一个项目(其他人的代码),其中一个方法被声明为抛出一堆它不可能抛出的已检查异常。

基本上,该方法如下所示:

// Assume E1 extends Exception
// Assume E2 extends Exception
// Assume E3 extends Exception
public void method(Object param) throws E1, E2, E3 {
    // Call a bunch of methods, none of which are declared to
    // throw checked exceptions.
}

当然,我删除了 throws 子句。当然,我这样做没有收到任何编译器错误,因为根据代码的静态分析,抛出这些异常是不可能的。

所以我的问题是,为什么 Eclipse 及其构建器或 javac 没有警告我这些虚假的 throws 声明?有什么我可以开启的东西来实现这一目标吗?

最糟糕的是,如果我得到了我应该得到的警告,就会产生级联效应,因为 method() 的所有调用者要么重新声明相同的 throws 或包含一堆无用的 try/catch block ,这绝对会混淆程序的含义。

最佳答案

如果 throws 子句中包含不必要的异常,您可以强制 Eclipse 给出编译时错误/警告。

请引用以下截图:

enter image description here

关于java - 我怎样才能让 Eclipse(或 javac)警告过度包容的 throws 条款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30719188/

相关文章:

java - 使用 FailSafe 和 SureFire 插件并行运行 JUnit 4 测试

java - 如何加快java.net.ServerSocket和java.net.Socket效率?

Java 安全异常无效的 SHA1 Jar 文件

java - 使用 fragment 按下“下一步”按钮时如何避免声音重叠? (安卓工作室)

java - Android 中的 JSON 数据加密和解密

java - 如何使用外部类实现 ActionListener?

java - 多个 eclipse 配置文件

java - 当我在 Java 中说 "catch (Exception e) {}"时,它叫什么?

architecture - 为什么 Repository Pattern 的例子从不处理数据库连接异常?

c++11 - make_unique 的异常感知 malloc 版本