在不向声明中添加抛出的情况下重试异常



有什么方法可以避免在Java的方法接口中声明"throws"吗?

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

这需要我添加"throws"声明。但是这个方法是接口的实现,所以我也需要更新接口,然后更新所有其他实现,然后更新一些(可能很多)用法。真的没有办法避免这种情况吗?我现在要做的是在catch的末尾引起本机异常:通过访问null或除以0,这看起来太恶心了!

如果您不关心原始异常是否被保留,您可以抛出一个RuntimeException并将原始异常封装在其中。RuntimeException和派生异常未选中,不需要列出。如果需要保留原始异常,则必须调整throws子句。

最新更新