抛出异常类型的变化是否应被视为突破性变化?

时间:2015-09-07 18:10:08

标签: versioning semantic-versioning

如果我有一个使用semantic versioning管理的公共API,那么方法可能引发的异常类型的更改是否会被视为重大变化?

考虑这个例子:

// API version 1.0.0
public void Method()
{
     // this may throw ThirdPartyComponentException 
     _thirdPartyComponent.SomeMethod();
}

调用代码可能如下所示:

try
{
    _api.Method();
}
catch (ThirdPartyComponentException e)
{
    //some recovery logic
}

如果API.Method的实施如此改变:

// API version ?.?.?
public void Method()
{
    try
    {
        // this may throw ThirdPartyComponentException 
        _thirdPartyComponent.SomeMethod();
    }
    catch (ThirdPartyComponentException e)
    {
        throw new MyApiException(e);
    }
}

是否应该增加语义版本的主要值,因为这种变化可能会破坏?它肯定会打破上面的异常处理程序,所以看起来像是一个突破性的变化。

0 个答案:

没有答案