объекты, выбрасывающие исключения внутри объектов - PullRequest
0 голосов
/ 02 февраля 2010

Я работаю над объектом, который в какой-то момент создает экземпляр другого объекта.Этот внутренний объект может вызвать исключение.Я мог бы просто позволить этому исключению появиться в коде, который обрабатывает родительский объект, что я и хочу сделать, следуя философии KISS.Или я мог бы сделать некоторую обработку исключений в родительском объекте и, возможно, дать более значимое исключение для «клиентского» кода.Есть ли общее правило, которому нужно следовать, или я решаю, что делать в каждом конкретном случае?

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

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

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

Кроме этого, если внешний объект не знает, что делать или ему нечего добавить, он не должен касаться исключения.

1 голос
/ 02 февраля 2010

Если «внешний» объект не может обрабатывать исключения, выдаваемые «внутренним» объектом, он не должен пытаться это делать. В лучшем случае он может поймать несколько наиболее распространенных и перебросить с добавлением чуть большего количества информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...