处理异常的最佳实践

时间:2012-07-18 12:50:11

标签: asp.net entity-framework enterprise-library

我有一个ASP.NET(Webforms)项目,使用实体框架企业库进行异常处理/日志记录。在保存到数据库时处理异常的最佳做法是什么?

我是否应该使用异常处理块配置企业库来处理所有异常。或者我应该用 try / catch 包围每个保存语句,并在每个catch语句中处理异常。我希望这是有道理的。

3 个答案:

答案 0 :(得分:2)

您应该始终根据应用程序业务逻辑处理已知的预期异常,否则让它去,让企业库记录它。

另一个经验法则是,如果处理了异常,将应用程序状态/流程分解为意外状态,应该让它失败。

示例:

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);
        }
    }
}

答案 1 :(得分:0)

当有车轮时,无需重新发明车轮。企业库是处理异常的好方法。

答案 2 :(得分: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