デバッグ例外は、堅牢な ASP.NET アプリケーションを開発する上で重要な部分です。 例外をデバッグする方法に関する一般的な情報は、 デバッガーでの例外の管理にあります。
ハンドルされない ASP.NET 例外をデバッグするには、デバッガーが停止していることを確認する必要があります。 ASP.NET ランタイムには、最上位の例外ハンドラーがあります。 そのため、既定では、デバッガーは未処理の例外を決して中断しません。 例外がスローされたときにデバッガーに侵入するには、例外ダイアログ ボックスでその特定の例外に対して[スローされたときに中断]設定を選択する必要があります。
[マイ コードのみ] を有効にした場合、.NET メソッドまたはその他のシステム コードで例外がスローされても、 スローされたときに中断 してもデバッガーはすぐに中断されません。 代わりに、デバッガーがシステム以外のコードにヒットするまで実行が続行され、中断されます。 その結果、例外が発生したときにシステムコードを順に実行する必要はありません。
マイ コードだけに役立つ別のオプションが用意されています。 ユーザー コードで処理されない場合は続行します。 例外に対してこの設定を無効にした場合、デバッガーはユーザー コードでの実行を中断しますが、例外がユーザー コードによってキャッチおよび処理されない場合にのみ中断されます。 この設定は、最上位の ASP.NET 例外ハンドラーの効果を否定します。これは、そのハンドラーがユーザー以外のコード内にあるためです。
マイ コードのみを使用して ASP.NET 例外のデバッグを有効にするには
[ デバッグ ] メニューの [ Windows>Exception 設定] をクリックします。
[ 例外 ] ダイアログ ボックスが表示されます。
共通言語ランタイム例外で、例外がスローされるときに停止する行を選択します。
[ユーザー コードで処理されない場合に続行] を無効にする場合は、行を右クリックし、オプションが既に選択されている場合は選択を解除します。
[ユーザー コードで処理されない場合に続行する] 設定を使用するには、[マイ コードのみ] を有効にする必要があります。
ユーザー コードで [処理されない場合に続行] を有効にする場合は、行を右クリックして続行するオプションを選択し、例外の行の選択を解除します。
ASP.NET 例外処理のベスト プラクティスを使用するには
- 予期して対処可能な例外をスローする可能性のあるコードの周囲に
try ... catchブロックを配置します。 たとえば、アプリケーションが XML Web サービスを呼び出す場合や SQL Server に直接呼び出す場合は、そのコードを try ... catch ブロックに入れるべきです。これは、発生する可能性のある例外が多数存在するためです。