API设计:添加新的异常类型 - 是否安全?

时间:2009-08-20 10:42:41

标签: api exception backwards-compatibility

我需要更改现有的服务API,为场景抛出额外的异常。该异常将是已抛出异常的子类型。可以这样做还是被认为是向后兼容的?

我将接口放在一个单独的jar中,所以如果我的服务抛出这个新的异常,它是已经抛出的一个的子代,而客户端没有新的jar,它会破坏客户端还是他能够仍像以前一样抓住父异常?

问题是我们有一个非常通用的异常,它会针对每个特殊情况抛出,并且一些客户端需要更好的方法来识别异常 - 除了解析异常中的消息,但是如果我们引入的话,并非所有客户端都可以升级接口一个新的例外 - 如何最好地处理这种情况?

由于 Arvind的

1 个答案:

答案 0 :(得分:1)

由于新异常是现有异常的子类型,因此不应破坏任何现有代码。如果客户端代码捕获基本异常,它将捕获您的新异常。

然后,您可以重构客户端代码以捕获更新的更具体的异常。

相关问题