应该" Throwable"永远被抛出?

时间:2013-07-29 21:55:16

标签: java throwable

我正在编辑别人的代码,并且方法有“投掷可扔”。我把它关掉了,所以eclipse会让我只添加它需要抛出的异常类型...但是我对一个调用超类(我目前没有访问权限)的方法有一个错误,上面写着“未处理的异常类型Throwable ”。

基于我所知道的并基于我在这个鳕鱼中看到的东西,我的猜测是,这是不应该做的事情......但有人可以证实吗?

1 个答案:

答案 0 :(得分:5)

方法声明方法throws Exception有时是合理的。通常,需要更具体的例外。

例如,Callable接口有一个抛出异常的方法:

public interface Callable<V> {
    V call() throws Exception;
}

Throwable可能是异常或错误。错误表示应用程序尝试捕获的异常。任何方法都可以抛出它,并且不需要声明它。

来自Joshua Bloch的“Effective Java”,第2版:

  

“总是单独声明已检查的异常,并准确记录使用Javadoc @throws标记抛出每个异常的条件。不要采用声明方法抛出一些超类可以抛出的多个异常类的快捷方式。一个极端的例子,永远不要声明方法“抛出异常”,或者更糟糕的是,“抛出Throwable。”

这几乎总是最好的指导方针,除了Bloch绝对禁止“抛出异常”之外的一些例外。