首页 新闻 会员 周边

在Global.asax捕获异常时,得到Exception,“文件不存在。”

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-10-08 14:05

在void Application_Error(object sender, EventArgs e)此方法中我想捕获不是由System.web.Exception,“文件不存在。”的异常信息,而我想记录程序运行时发生的异常信息并写入数据库中,不知道通过什么方法来避免“文件不存在”的异常。我曾用(ex is HttpException)这个做过判断还是不能避免在操作过程中记录“文件不存在。”,请问高手可有其他方法实现。

悲秋是水的主页 悲秋是水 | 初学一级 | 园豆:190
提问于:2010-09-10 15:00
< >
分享
所有回答(3)
0

以前试过,也没有做到。不过web.config能检查到404,再转页面。

Astar | 园豆:40805 (高人七级) | 2010-09-10 15:35
可以在转到这个页面做一些记录。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-09-10 15:35
0

这样做:

Exception objErr = Server.GetLastError().GetBaseException();

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-09-10 16:03
我就是这样获取的Exception objErr = Server.GetLastError().GetBaseException();
支持(0) 反对(0) 悲秋是水 | 园豆:190 (初学一级) | 2010-09-10 18:40
0

try
{

}
catch (FileNotFoundException ex)
{

//什么都不要做,也就是跳过文件未找到错误
}
catch (Exception e)
{
//在这记录(也就是除了文件未找到错误都在这拦截)
}

 

慧☆星 | 园豆:5640 (大侠五级) | 2010-09-10 21:17
void Application_Error(object sender, EventArgs e) { //在出现未处理的错误时运行的代码 try { } catch (System.IO.FileNotFoundException fnex) { } catch (Exception exc) { log4net.ILog log = log4net.LogManager.GetLogger("ReflectionLayout"); exc = exc.GetBaseException(); //写入错误日志 log.Error(exc.Message, exc); Server.ClearError(); } 在此方法中,出现异常后Catch捕获不了异常,直接跳过Catch而不进入执行记录。
支持(0) 反对(0) 悲秋是水 | 园豆:190 (初学一级) | 2010-09-11 14:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册