java声明或者跑出异常_Java:声明可以抛出异常的接口方法的正确方法是什么?...

假设我有这个由多个供应商实现的接口A:

interface A

{

void x();

void y();

}

但是,我希望供应商能够抛出异常来发出信号失败的信号,并且该方法可能会抛出RuntimeException.在每种情况下,调用这些方法的代码都应该处理失败并继续.仅仅因为1个供应商抛出NPE,我不希望系统崩溃.我想通过将每个方法声明为:来确保每个调用都能捕获所有异常,而不是将其留给调用方法的人(或者真正的维护方式).

void x() throws Exception;

但这通常是不好的做法(PMD不喜欢它,一般我同意具体方法的规则),所以我想这是规则的例外还是有更好的方法?

让我说清楚,我正在寻找一种解决方案,其中接口的调用者被迫处理所有异常(包括RuntimeExceptions).

为了进一步详细说明我的环境,所有这些都在OSGi框架内运行.因此,每个供应商将其代码打包在一个捆绑包中,OSGi将处理所有异常以防止整个系统崩溃.我真正关注的是OSGi服务接口,它将被某些核心捆绑包调用.我想要确定的是,当我遍历所有服务时,一个服务不会抛出NPE并停止正在执行的进程.我希望通过捕获从服务抛出的所有异常来更优雅地处理它,以便仍然管理其他提供的服务.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值