質問

質問にはすべてが記載されています。次のサンプルコードをご覧ください:

<ul id="css-id">
    <li>
    <something:CustomControl ID="SomeThingElse" runat="server" />
    <something:OtherCustomControl runat="server" />
    </li>
</ul>

これらのコントロール(マスターページにある)内のどこかにエラーがスローされると、サイト全体がダウンします。どのようにこれらの例外をキャッチしますか?

役に立ちましたか?

解決

Global.asaxページ/クラスの他の場所で処理されないすべての例外をキャッチできます。 見てください:

protected void Application_Error(Object sender, EventArgs e)

メソッド。

他のヒント

残念ながら、未処理の例外は常にサイトにエラーを引き起こします。 ただし、いくつかの方法でこれを防ぐことができます。

  • web.configのセクションを使用して、わかりやすいメッセージを表示します
  • Global.asaxまたはカスタムハンドラーで、未処理の例外をキャッチし、それに応じて対応します-このような

ベストソリューション

  • コントロールが未処理の例外をスローしないことを確認してください!

global.asaxを追加して、Application_Errorハンドラーを実装します。 Server.GetLastError()関数を使用して、スローされた例外のハンドルを取得します。

ASPでカスタムエラーレポートページを作成する方法の説明に従って、global.asax Application_Errorメソッドを使用します。 Visual C#.NETを使用したNET

別のアプローチは、 HTTPモジュールを使用することです。これにより、柔軟性が向上します(たとえば、複数のアプリケーションからのエラーを処理できます)。

例外をキャッチして処理しますか?

または、イエロースクリーンオブデスを防止しますか? Yellow Screen Of Deathを防止しようとしている場合は、 HttpApplication で(つまり、Global.asaxで) Error イベントを処理することを確認してください。

詳細については、次のMSDNページを参照してください。 http://msdn.microsoft.com/en- us / library / system.web.httpapplication.error.aspx

特にこの段落:

  

Errorイベントを発生させる例外は、GetLastErrorメソッドの呼び出しによってアクセスできます。アプリケーションでカスタムエラー出力を生成する場合は、ClearErrorメソッドの呼び出しによってASP.NETによって生成されるデフォルトのエラーメッセージを抑制します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top