例外処理 (デバッグ)

例外は、プログラムの実行中に発生する異常状態です。多くの場合、例外はデバッグを必要とする問題を示します。例外が発生すると、[全般] ([オプション] ダイアログ ボックス - [デバッグ]) ダイアログ ボックスで無効にしていなければ、[出力] ウィンドウに例外メッセージが書き込まれます。

例外が発生したときに、実行を中断することも継続することもできます。

  • ASP.NET 以外で例外が発生し、処理されない場合、常に実行は中断されます。

  • エラー ハンドラーが呼び出される前に、例外が発生した直後に実行を中断するように、デバッガーを設定できます。詳細については、「方法 : 例外がスローされたときに中断する」を参照してください。

  • [NIB] 12/13 方法: マイ コードのみにステップ インする」でデバッグしている場合、3 つ目の選択肢があります。ユーザー コード ("マイ コード") のハンドラーで処理されない例外について、中断するようにデバッガーを設定できます。詳細については、「方法 : ユーザーに処理されない例外で中断する」を参照してください。

  • ASP.NET には、トップレベルの例外ハンドラーが用意されています。例外を処理してブラウザーにエラー ページを表示できます。このトップレベルの例外ハンドラーがあれば、処理されなかった例外がデバッガーに割り込むことを防ぐことができます (ただし、マイ コードのみが有効な場合は除きます)。ASP.NET をデバッグする場合は、忘れずに [マイ コードのみ] を有効にしてください。

    例外が発生し、まったく処理されない場合、デバッガーは常に中断します。この操作は、[ユーザーにハンドルされていないとき] の設定に左右されません。

Visual Studio デバッガーでは、次のカテゴリの例外が認識されます。

  • C++ 例外

  • 共通言語ランタイム例外

  • マネージ デバッグ アシスタント

  • ネイティブ ランタイム チェック

  • Win32 例外

ほとんどの例外には、例外が発生したときに反応するように設計されたハンドラーがあります。これによって、正常ではない状況からプログラムを回復する機会ができます。ネイティブ ランタイム チェックにはハンドラーはありません。

Visual Basic アプリケーションのデバッガーでは、すべてのエラーが例外として表されます。On Error 形式のエラー ハンドラーを使用している場合でもそうです。

Visual Basic と C# のデバッガーには、例外が発生したときにより詳細な情報を提供する 例外処理アシスタント という新機能が追加されました。

以下のトピックでは、例外処理について説明します。

参照

処理手順

[NIB] 12/13 方法: マイ コードのみにステップ インする

概念

デバッガーのセキュリティ

その他の技術情報

例外処理アシスタント

デバッガーのロードマップ