2009-08-20 2 views
0

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

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

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

Благодаря Эрвинд

ответ

1

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

Затем вы можете реорганизовать клиентский код, чтобы уловить более новое конкретное исключение.

+0

Я думал, что если новый объект подтипа не находится в банке, который имеет клиент, он получит исключение ClassNotFoundException или что-то подобное – Arvind

+0

@Arvind - лучший способ протестировать эту штуку - это настроить тестовое приложение и сделайте там редактирование, чтобы узнать, что произойдет. – ChrisF

 Смежные вопросы

  • Нет связанных вопросов^_^