#c #exception #mfc #exception-specification
#c #исключение #mfc #исключение-спецификация
Вопрос:
Мы используем CDynamicAccessor
which наследует from CAccessorBase
. Функция MoveNext
выдаст
HRESULT MoveNext() throw()
но без указания типа исключения. Как мне это узнать?
Ответ №1:
Нет, throw()
означает, что функция объявлена так, чтобы не создавать никаких исключений.
Обратите внимание, что он устарел (и удален в C 20); мы можем использовать noexcept
(или noexcept(true)
) начиная с C 11.
Комментарии:
1. Это то, что сбило меня с толку. Спасибо StoryTeller за разъяснение.
2. О боже… Но на самом деле он выдал. Должно быть несколько поврежденных записей, при выполнении MoveNext произошел сбой. Я буду копать дальше.
3. @Zhang О поведении, когда функция выдает исключение, не указанное в спецификации исключения, смотрите здесь .