2

例外処理/ロギングにエンティティ フレームワークエンタープライズ ライブラリを使用する ASP.NET (Webforms) プロジェクトがあります。データベースに保存するときに例外を処理するためのベスト プラクティスは何ですか。

すべての例外を処理するために、例外処理ブロックを使用してエンタープライズ ライブラリを構成する必要があります。または、各saveステートメントをtry/catchで囲み、各 catch ステートメント内で例外を処理する必要があります。これが理にかなっていることを願っています。

4

3 に答える 3

2

アプリケーションのビジネス ロジックに基づいて、既知の予想される例外を常に処理する必要があります。

もう 1 つの経験則は、例外が処理されたかどうかにかかわらず、アプリケーションの状態/フローが予期しない状態に陥った場合は、それを失敗させる必要があるということです。

例:

class Programs
{
    static void Main(string[] args)
    {
        try
        {
            Print_String(null);
        }
        catch (System.ArgumentException ex)
        {
            Console.WriteLine("{0}", ex.Message);
        }
        //catch (Exception ex)
        //{
           //no no
        //}
        Console.ReadLine();
    }

    private static void Print_String(string str)
    {
        if (str == null)
        {
            throw new ArgumentNullException("str");
        }
        else
        {
            Console.WriteLine(str);
        }
    }
}
于 2012-07-18T12:53:26.697 に答える
0

車輪があれば、車輪を再発明する必要はありません。エンタープライズ ライブラリは、例外を処理する良い方法です。

于 2012-07-18T12:51:42.253 に答える
0

ページ レベルの例外

Add a Page_Error() method to your page and handle the exceptions here

アプリケーション レベルの例外:

Add your code in the global.asax event Application_Error() to manage exceptions
于 2012-07-18T13:00:39.280 に答える