为了账号安全,请及时绑定邮箱和手机立即绑定

如何精确定位“Object reference not set to an instance of an object.”错误的出错位置

如何精确定位“Object reference not set to an instance of an object.”错误的出错位置

素胚勾勒不出你 2018-12-07 12:44:40
我的程序日志记录代码如下: protected override void OnException(ExceptionContext filterContext){ log4net.Error("【IP】" + filterContext.HttpContext.Request.UserHostAddress + "\r\n\r\n" + "【Url】" + filterContext.HttpContext.Request.Url.AbsoluteUri + "\r\n\r\n" + "【Message】" + filterContext.Exception.Message + "\r\n\r\n" + "【StackTrace】" + filterContext.Exception.StackTrace + "\r\n\r\n");} 得到的日志信息如下: 【Message】Object reference not set to an instance of an object.【StackTrace】 at ASP._Page_Views_List_test_cshtml.Execute() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) 这是一个很常见的“Object reference not set to an instance of an object”错误,IP跟URL没帖出来,通过这个日志我仅能知道是哪个页面出错了,但不能精确地知道错误的出错位置,请问有没有办法可以精确地定位。
查看完整描述

9 回答

?
森林海

TA贡献2011条经验 获得超2个赞

VS菜单“DEBUG”->"Exceptions",把CLR Exceptions下的System下的System.NRE钩选成thrown,再debug,这样就会在任何抛出NRE的时候不catch而直接进入调试。

查看完整回答
反对 回复 2019-01-21
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

那你从底层开始往上逐层抛异常试试 一直到页面端

查看完整回答
反对 回复 2019-01-21
?
倚天杖

TA贡献1828条经验 获得超3个赞

OnException这个方法是个基类,按你的方法太复杂了,代码改动地方太多,万不得以再采取这种方法
查看完整回答
反对 回复 2019-01-21
?
交互式爱情

TA贡献1712条经验 获得超3个赞

ASP._Page_Views_List_test_cshtml 是该变量为null,还是ASP._Page_Views_List_test_cshtml.Execute()函数中的某个变量是null? 你可以实际测试下,看下抛的异常是如何定位的.

查看完整回答
反对 回复 2019-01-21
?
千万里不及你

TA贡献1784条经验 获得超9个赞

现在的问题是在我机子上怎么运行都没错误,但放到服务器上后偶尔会记录到问题中描述的错误,纠结

查看完整回答
反对 回复 2019-01-21
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

这个先帮你顶一下。

查看完整回答
反对 回复 2019-01-21
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

一般碰到这种情况我都是用最笨的办法,给可能出现异常的代码前加上一堆记录日志和关键数据的方法,然后等着下次出错的 时候看日志,不然还真拿这种偶尔出现又无从调试的错误没辙啊

查看完整回答
反对 回复 2019-01-21
  • 9 回答
  • 0 关注
  • 594 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信