Rethrow异常而不添加抛出声明

时间:2013-12-12 17:43:45

标签: java try-catch throws

有没有办法避免在Java中的方法接口中声明“throws”?

问题是:我有一个非常简单的方法,它会抛出NPE。这很简单,我添加了所有可能的检查,坦率地无法想象这是怎么发生的,所以我想调查一下。我添加了try / catch(Throwable e)和日志记录,最后想要重新抛出。

这要求我添加“throws”声明。但是这个方法是接口的实现,所以我还需要更新接口,然后是所有其他实现,然后是一些(可能很多)用法。真的没有办法避免这种情况吗?我目前要做的是在catch结束时导致本机异常:通过访问null或除以0 - 这看起来太麻烦了!

1 个答案:

答案 0 :(得分:2)

如果您不关心保留原始异常,可以抛出RuntimeException并将原始异常包装在其中。 RuntimeException和派生的异常未经检查,无需列出。如果您需要保留原始异常,则必须调整throws子句。