我正在编辑别人的代码,并且方法有"投掷可扔".我把它关掉了,所以eclipse会让我只添加它需要抛出的异常类型...但是我对一个调用超类(我目前没有访问权限)的方法有一个错误,上面写着"未处理的异常类型Throwable ".
基于我所知道的并基于我在这个鳕鱼中看到的东西,我的猜测是,这是不应该做的......但是有人可以证实吗?
声明方法的方法有时是合理的throws Exception
.通常,需要更具体的例外.
例如,Callable接口有一个抛出异常的方法:
public interface Callable<V> {
V call() throws Exception;
}
Run Code Online (Sandbox Code Playgroud)
A Throwable
可以是异常或错误.错误表示异常,应用程序应该不会试图捕获.任何方法都可以抛出它,而且不需要声明它.
来自Joshua Bloch的"Effective Java",第2版:
"总是单独声明已检查的异常,并准确记录使用Javadoc @throws标记抛出每个异常的条件.不要采用声明方法抛出一些超类可以抛出的多个异常类的快捷方式.作为一个极端的例子,永远不要声明一个方法"抛出异常",或者更糟糕的是,"抛出Throwable".
这几乎总是最好的指导方针,布洛赫绝对禁止"抛出异常"的例外情况除外.