Ⅰ. はじめに
Visual Studioのデフォルト設定ではWindowsが発行する「システム的な例外」を捉えることはできません。
- 無効なメモリアドレスへのアクセス
- 0での割り算
等が「システム的な例外」に該当します。
また、「『システム的な例外』をプログラム上で扱う事」を構造化例外処理(SEH: Structured Exception Handling)といいます。
SEH は Windows のみで有効です。
Ⅱ. やり方
1. プロジェクトのプロパティを開く
3. メモリアクセス違反が発生するサンプルプログラムを実行する
#include <iostream> using namespace std; int main() { try { *(int *)0 = 0; } catch (...) { cout << "catch exception" << endl; } return 0; }
実行結果