Некоторые основные отличия между SEH (структурированной обработкой исключений) и стандартным механизмом исключений в C++:
- Типы исключений. 25 Исключения в C++ определяются типом данных, а в SEH — исключениями одного типа, в частности, unsigned int. 25
- Асинхронность. 25 SEH называют асинхронной моделью, так как исключения происходят вторичными в обычном потоке управления. 25 Механизм обработки исключений C++ полностью синхронный: исключения возникают только при их возникновении. 25
- Обработка «первого шанса». 3 SEH позволяет зарегистрировать или иным образом обработать исключение до того, как уничтожение уничтожит все локальные переменные. 3
- Поддержка деструкторов. 4 При структурной обработке исключений не выполняется вызов деструкторов — это наиболее важное отличие SEH от стандартного механизма. 4
- Поддержка операционной системы. 4 SEH обеспечивается операционной системой Windows, поэтому программы, в которых используется SEH, непереносимы. 4
Microsoft не рекомендует смешивать стандартные и структурные исключения в одной программе. 4