Re: подходы к обработке исключений
От: Акул www.kyrs.ru
Дата: 07.05.03 10:33
Оценка: 53 (5) +1
Здравствуйте, Slick, Вы писали:

S>Коллеги, хотелось бы поднять тему обработки исключений в С++ приложениях.

S>При разработке системы отслеживания и обработки ошибок в объектно-ориентированном приложении порою сталкиваешься с S>дилемой: какой подход и в каком случае применять для решения этих задач. Фактически речь идет о выборе между отлавливанием через try-catch, предпологающим написание классов исключений и обычным анализом возвращаемого статуса выполнения. Кто чем пользуется и в каких случаях пользуется?

В документации к Visual C (Exception Handling: Overview) изложен следующий подход (в моей интерпретации ):

а) Если возникшая ситуация отражена в протоколе функции (метода класса), то следует вернуть соответствующий код ошибки. Например — неверный пароль, переданный в функцию аутентификации.

б) Если какая-то ситуация возникает из-за ошибки времени разработки (например — в функцию передан нулевой указатель), т.е. требуется вмешательство программиста, то исключение не подходит, нужно использовать что-то типа ASSERT().

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

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