2016-11-11 17 views
-2

У меня есть специальный класс исключения для моей библиотеки. Я хотел бы знать, должен ли я регистрировать обработчик SEH и улавливать исключения процессора, такие как нарушение доступа, незаконное указание, деление на ноль. Затем я могу сообщить об этом клиенту моей библиотеки, что произошло исключение CPU.Должен ли я регистрировать обработчик SEH и улавливать исключения процессора в моей библиотеке?

+0

Я думаю, что это вопрос Windows, который является C++. – Gonmator

ответ

1

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

Первое правило не должно обрабатывать исключения SEH и разрешать приложению делать это по мере их настройки.

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

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