【发布时间】:2013-05-03 17:31:09
【问题描述】:
我觉得我想太多了,或者可能走错了路,但我要做的只是捕捉应用程序中抛出的错误,将它们记录到数据库中,然后重定向到一个软错误页面。
在我的 Global.asax 中,我有以下内容:
protected void Application_Error(object sender, EventArgs e)
{
try
{
ErrorLog error = new ErrorLog(Server.GetLastError().GetBaseException(), true);
Response.Redirect("/error.aspx?id=" + error.ID);
}
catch(Exception err)
{
Response.Redirect("/error.aspx");
}
}
错误日志是我创建的一个执行记录插入和类似操作的类。
现在我遇到的问题是,如果数据库出现问题,比如它处于脱机状态、存储过程中的错误等,我就会陷入插入错误的无限循环。
我试图提出解决此问题的解决方案是检查是否已引发错误,如果是,请不要尝试插入记录,但我无法找到关于这一点。
再一次,也许我没有以正确的方式解决这个问题?任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
也许导致数据库错误的代码会在抛出错误的情况下继续运行?
-
你是说你的架构是“我们不会捕获任何异常,一切都会冒泡到应用程序级别”并且唯一处理错误的地方就是在这个事件中?
-
也许我应该提到这一点。这是最后一种情况。我在应用程序中有很多其他错误处理,可以捕获错误并登录。这是针对其他地方未处理的错误。
标签: c# asp.net error-handling