このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
![]() |
![]() |
![]() |
![]() |
![]() |
Pro、Premium、Ultimate |
![]() |
![]() |
![]() |
![]() |
![]() |
例外のデバッグは、堅牢な ASP.NET アプリケーションの開発で重要な部分です。 例外をデバッグする方法の一般的な情報については、「例外処理 (デバッグ)」を参照してください。
ハンドルされない ASP.NET 例外をデバッグする場合、その例外でデバッガーを中断する必要があります。 ASP.NET ランタイムには、トップレベルの例外ハンドラーがあります。このため、既定では、デバッガーはハンドルされない例外で中断されません。 例外がスローされたときにデバッガーを中断するには、[例外] ダイアログ ボックスで、その例外について [例外が次の場合に中断する] で [スローされるとき] の設定を選択します。
"マイ コードのみ" を有効にしている場合は、[例外が次の場合に中断する] で [スローされるとき] を選択しても、例外が .NET Framework メソッドや他のシステム コード内でスローされても、デバッガーはすぐには中断されません。 デバッガーがシステム コード以外のコードをヒットするまで実行は継続され、ヒットした時点でデバッガーは中断されます。 つまり、例外が発生したときにシステム コードをステップ実行する必要はありません。
"マイ コードのみ" では、さらに便利な [例外が次の場合に中断する:] で [ユーザーにハンドルされていないとき] を選択することもできます。 例外にこの設定を選択すると、ユーザー コードで例外が取得され、処理された場合にのみ、デバッガーによってユーザー コードの実行が中断されます。 この設定では、トップレベルの ASP.NET 例外ハンドラーの効果が無視されます。この例外ハンドラーがユーザー コードではないためです。
[マイ コードのみ] で ASP.NET 例外を有効にするには
[デバッグ] メニューの [例外] をクリックします。
[例外] ダイアログ ボックスが表示されます。
[Common Language Runtime Exceptions] 行の [スローされるとき] または [ユーザーにハンドルされていないとき] チェック ボックスをオンにします。
[ユーザーにハンドルされていないとき] 設定を使用するには、[マイ コードのみ] を有効にする必要があります。 詳細については、「方法 : マイ コードのみにステップ インする」を参照してください。
ASP.NET の例外処理で推奨される手順を使用するには
- 予測でき、処理方法がわかる例外をスローできるコードを、try … catch ブロックで囲みます。 たとえば、アプリケーションから XML Web サービスを呼び出したり、SQL Server を直接呼び出したりする場合、そのコードは、try … catch ブロックで囲みます。この場合、数多くの例外が発生すると予想できるためです。