2

質問はすべてを示しています。次のコード例を見てください。

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

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

4

5 に答える 5

6

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

protected void Application_Error(Object sender, EventArgs e)

方法。

于 2008-09-26T06:58:44.180 に答える
2

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

  • web.config のセクションを使用して、ユーザー フレンドリーなメッセージを表示します。
  • Global.asax (またはカスタム ハンドラー) で、ハンドルされていない例外をキャッチし、それに応じて対応します -このように

最善の解決策

  • コントロールが未処理の例外をスローしないようにしてください。
于 2008-09-26T06:59:03.180 に答える
1

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

それとも、死のイエロースクリーンを防ぎたいですか?死のイエロースクリーンを防止しようとしている場合は、 (つまり、Global.asaxで)Errorイベントの処理を検討してください。HttpApplication

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

具体的にはこの段落:

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

于 2008-09-26T07:03:59.660 に答える
1

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

于 2008-09-26T06:58:45.583 に答える
1

「Visual C# .NET を使用して ASP.NET でカスタム エラー報告ページを作成する方法」で説明されているように、global.asax Application_Error メソッドを使用します。

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

于 2008-09-26T07:00:13.443 に答える