Как добавить один обработчик исключений для класса? - PullRequest
0 голосов
/ 09 июля 2010

Я пытаюсь использовать один обработчик исключений для обработки всех исключений, вызванных классом C ++. Есть ли простой способ, вместо добавления кода для каждой функции-члена?

Спасибо

Ответы [ 2 ]

3 голосов
/ 09 июля 2010

Нет простого способа сделать это.

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

Если вы не можете легко обработать исключение, просто бросьте его. Не глотай, не притворяйся, что этого не произошло.

0 голосов
/ 09 июля 2010

Я полностью согласен с cHao.

Если вы просто хотите убедиться, что какое-то тривиальное исключение не приводит к сбою вашей программы, то, например, если вы пишете приложение с графическим интерфейсом, вы можете заключить цикл обработки событий в блок try / catch, а затемв зависимости от исключения решите зарегистрировать его, сообщить пользователю, запросить разрешение на отправку отчета об ошибке, выключить программу (хорошо, если вы перезапустите ее автоматически ...) и т. д. (если все прошло нормальновашего цикла событий, не будучи пойманным, вы, вероятно, хотите знать об этом!)

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