2012-12-26 54 views
1

有没有一种方法可以让Eclipse在方法中抛出异常时抑制丢失的throws声明的错误?丢失`throws`的缺失错误

如果你要在没有明确指定throws的情况下构建并运行某些东西,它将展开到main方法并使程序崩溃(这是我在此特定情况下所需的)。有一些例外,比如sun.reflect.generics.reflectiveObjects.NotImplementedException,它允许你扔它而不需要指定throws

+0

难道你不能只是添加一个抛出声明到你的主要方法吗? (我没有在这台计算机上安装Eclipse,所以我不能自己测试它,不幸的是...) –

+0

不是当调用层次非常深时。在这个例外情况下,我必须添加超过13个抛出声明,这不是我想要做的事情。 – Qix

+0

看看[这个答案](http://stackoverflow.com/a/3624776/38055) - 显示的选项窗格似乎有很多选项的各种错误和警告。也许那里有什么? –

回答

4

Eclipse在这里没有做任何特别的事情;问题出在Java代码本身。您的两个最佳选择是更改方法的签名以包含throws,或捕获异常并将其重新抛出为RuntimeException(或RuntimeException的子类)。

try { 
    doWhatever(); 
} catch (SomeException e) { 
    throw new SomeRuntimeException(e); 
} 

...其中SomeException是或扩展了Exception(但不是RuntimeException),SomeRuntimeException是或扩展了RuntimeException。

欲了解更多信息,请查看有关checked Exceptions的Sun Java教程中的部分。

+0

+1'RuntimeException'做到了!谢谢。在这种情况下,我创建了自己的异常,所以和将'extends Exception'更改为'extends RuntimeException'一样简单。 – Qix