Re[3]: [C++] [:==:] работа с исключениями
От: DGurin http://ua.linkedin.com/in/dgurin
Дата: 10.07.11 17:44
Оценка:
Здравствуйте, uzhas, Вы писали:

U>я предложил два решения с разной подробностю ошибок

U>1) "Cannot find file"
U>2) "Failed to open database. Details: cannot find file"

Мое ИМХО — в данном случае, юзеру "что в лоб, что по лбу" .
Он не может сделать то, что хотел. Он хотел залогиниться на удаленный хост?
Он не может этого сделать по вине того самого хоста.

Никакие файлы базы ему и в страшном сне не присняться.

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

U>в плане имплементации первый вариант делается легко : пишем только throw, а catch пишем лишь на самом верху

U>во втором случае catch надо писать уже много где, чтобы цеплять информацию о контексте выполнении. неясно как дешево это сделать (чтобы и времени много не уходило и код не перемешивался с ценной логикой)

Лично я склоняюсь ко второму варианту, где все исключения внутри компонента обрабатываются на его границе (пока мы знаем максимум о контексте). Что нельзя обработать — добываем контекст и пускаем дальше новое исключение — дабы не плодить развесистые catch-блоки.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.