0 голосов
спросил от в категории MFCVisualC
В C ++, в отличие от .NET или Java, для всех случаев нет ни одного родительского класса исключения. Вы не можете поймать все исключения своим кодом. Похожее сходство CException с такими универсальными базовыми типами исключений вводит в заблуждение; это ничего не значит.

Чтобы поймать все исключения, вам нужно написать что-то вроде этого:

0 ## #

Многие разработчики сказали, что catch (...) - плохой стиль, но я не согласен. Плохой стиль злоупотребляет чем-либо, включая этот метод catch, но есть множество случаев, когда это абсолютно необходимо. Один пример: самый верхний стек стека для всех потоков.

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

См. Также мой прошлый ответ:
try{     // ... } catch (SomeConcreteExceptionType * e) {     // ... } catch (SomeOtherConcreteExceptionType * e) {     // ... } catch (...) { // here you catch all the rest     // ... }
# [#^ #].

? SA

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

Категории

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

Похожие вопросы

0 голосов
0 ответов
0 голосов
0 ответов
0 голосов
0 ответов
спросил 20 Июнь, 17 от jochen arndt в категории MFCVisualC
0 голосов
0 ответов
спросил 31 Янв, 13 от merano в категории MFCVisualC
...