Разработка API: добавление нового типа исключения - это безопасно? - PullRequest
0 голосов
/ 20 августа 2009

Мне нужно изменить существующий сервисный API, чтобы добавить дополнительное исключение для сценария. Исключение будет подтипом уже сгенерированного исключения. Это нормально, или это будет считаться несовместимым в обратном направлении?

У меня есть интерфейс в отдельном банке, поэтому, если моя служба выдает это новое исключение, которое является дочерним по отношению к уже сгенерированному, и у клиента нет нового баночного файла, он сломает клиент или сможет все еще перехватывает родительское исключение, как раньше?

Проблема в том, что у нас есть очень общее исключение, которое выдается для каждого исключительного случая, и некоторые клиенты хотят иметь более эффективные способы идентификации исключения - кроме анализа сообщения в исключении, но не все клиенты могут обновить интерфейс, если мы представим новое исключение - как лучше всего справиться с этим сценарием?

Спасибо Arvind

1 Ответ

1 голос
/ 20 августа 2009

Поскольку новое исключение является подтипом существующего, вам не следует нарушать существующий код. Если код клиента перехватывает базовое исключение, он перехватит ваш новый.

Затем можно выполнить рефакторинг кода клиента, чтобы перехватить более новое, более конкретное исключение.

...