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

我的程序日志记录代码如下:

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没帖出来,通过这个日志我仅能知道是哪个页面出错了,但不能精确地知道错误的出错位置,请问有没有办法可以精确地定位。

素胚勾勒不出你
浏览 595回答 9
9回答

森林海

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

ABOUTYOU

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

倚天杖

OnException这个方法是个基类,按你的方法太复杂了,代码改动地方太多,万不得以再采取这种方法

交互式爱情

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

千万里不及你

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

慕妹3242003

这个先帮你顶一下。

天涯尽头无女友

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