我有以下API:的Java API休息
public class MyApiImpl {
public void method() throws MyException {
if (C1) {
throw new MyException("c1 message");
} else if (c2) {
throw new MyException("c2 message");
}
...
}
}
你:
public interface MyApi {
/**
* Performs some stuff.
* @throws MyException if condition C1
*/
public void method() throws MyException;
}
現在我在我的API實現執行以下修改
public class MyApiImpl {
public void method() throws MyException {
if (C1) {
throw new MyException("c1 message");
}
...
}
}
被替換將此視爲API損壞?
由於MyExcepiton被「新」條件拋出,客戶端的代碼仍然可以編譯,但API javadoc定義的方法約定不受重視。
如果只更新我的API jar文件,客戶端應用程序仍然可以工作,但取決於客戶端捕獲異常的方式,應用程序行爲可能會發生很大的變化。
對此你有什麼看法?