我正在开发一个项目(其他人的代码),其中声明了一个方法来抛出一堆它不可能抛出的已检查异常。
基本上,该方法如下所示:
// 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
块,这绝对混淆了 ojit_code 的含义该程序。 最佳答案
如果 throws 子句中包含不必要的异常,您可以强制 Eclipse
给出编译时错误/警告。
请引用以下截图:
关于java - 如何让 Eclipse(或 javac)警告过度包含的 throws 子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30719188/