В случае с критической ошибкой
G_Z 01.07.2007 02:40
/ 01.07.2007 02:40
на мой взгляд лучше всего сгенерировать исключение, оставив его обработку на совести вызывающего.
Вызывающий может обработать его, либо отправить выше, пусть уже там разбираются.
Ибо, если конструктору объекта, к примеру, необходимы некоторые данные, которые являются критичными для создания объекта, в случае их неполучения глупо пытаться что-то предпринять, чтобы как-то продолжить работу (масса вложенных проверок).
Механизм исключений как раз и создан для облегчения работы с подобными случаями.
К примеру, если код должен работать только в случае определённых прав, ничего не мешает вызывать метод проверки, имея ввиду, что он вернёт ошибку, если прав недостаточно.
Метод проверки прав генерирует исключение, если прав недостаточно, метод вывода данных знает, что проверка может вызвать исключение оговоренного типа.
В этом случае, при наличии прав данные спокойно выдаются, при недостаточности — можно как угодно обругать юзера, перехватив ошибку.
Всё сводится к некому централизованному обработчику внутренних ошибок, который, в случае нештатной ситуации, выполнит необходимые действия.
Ну, а выполнение кода, естественно, остановится при генерации исключения.