我正在编辑别人的代码,一个方法有“Throws Throwable”。我把它关掉了,所以 Eclipse 会让我只添加它需要抛出的异常类型......但是我在调用超类(我目前无权访问)的方法上有一个错误,上面写着“未处理的异常类型 Throwable ”。
根据我所知道的以及我在这个 cods 中看到的内容,我的猜测是这是不应该做的事情......但是有人可以确认吗?
有时,一个方法声明一个方法是合理的throws Exception
。通常,更具体的例外是可取的。
例如,Callable 接口有一个抛出异常的方法:
public interface Callable<V> {
V call() throws Exception;
}
AThrowable
可以是异常或错误。错误表示应用程序不应尝试捕获的异常。任何方法都可以抛出,无需声明。
来自 Joshua Bloch 的“Effective Java”,第 2 版:
“始终单独声明已检查异常,并使用 Javadoc @throws 标签准确记录每个异常被抛出的条件。不要走捷径,即声明一个方法抛出了它可以抛出的多个异常类的某个超类。举个极端的例子,永远不要声明一个方法“抛出异常”,或者更糟糕的是,“抛出 Throwable”。
这几乎总是最好的指导方针,除了 Bloch 绝对禁止“抛出异常”的一些例外。