【发布时间】:2012-07-18 12:50:11
【问题描述】:
我有一个 ASP.NET (Webforms) 项目,使用 实体框架 和 企业库 进行异常处理/记录。 保存到数据库时处理异常的最佳做法是什么。
我是否应该只使用异常处理块配置企业库来处理所有异常。或者我应该用 try/catch 包围每个 save 语句并在每个 catch 语句中处理异常。我希望这是有道理的。
【问题讨论】:
标签: asp.net entity-framework enterprise-library
我有一个 ASP.NET (Webforms) 项目,使用 实体框架 和 企业库 进行异常处理/记录。 保存到数据库时处理异常的最佳做法是什么。
我是否应该只使用异常处理块配置企业库来处理所有异常。或者我应该用 try/catch 包围每个 save 语句并在每个 catch 语句中处理异常。我希望这是有道理的。
【问题讨论】:
标签: asp.net entity-framework enterprise-library
您应该始终根据您的应用程序业务逻辑处理已知的预期异常,否则放手让企业库记录它。
另一个经验法则是,无论是否处理了异常,都会将您的应用程序状态/流程中断为意外状态,您应该让它失败。
示例:
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);
}
}
}
【讨论】:
有了轮子,就不需要重新发明轮子了。企业库是处理异常的好方法。
【讨论】:
页面级异常
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
【讨论】: