当前位置:  开发笔记 > 后端 > 正文

缺少StackTrace信息

如何解决《缺少StackTrace信息》经验,为你挑选了1个好方法。

我似乎错过了我的堆栈跟踪中的一些信息,这是我得到的:

at Foo.Bar(DataTable table) in D:\Foo\Bar\authoring\App_Code\FooBar.vb:line 87

堆栈跟踪信息的其余部分在哪里?

编辑:

Web.Config中的自定义错误设置为关闭,我正在处理它被捕获的错误:

 Catch ex As Exception
     Respose.Write(ex.StackTrace)
 End Try

堆栈跟踪仍然被截断.



1> cgreeno..:

确保web.config中的customErrors设置为"RemoteOnly"或"Off"以禁用友好错误.

或者可能堆栈跟踪重置?(虽然如果是这种情况你仍然应该看到一些东西)

将重置您的堆栈跟踪.

catch(Exception ex) 
{
   throw ex; 
}

不会重置堆栈跟踪.

catch(Exception ex) 
{
   throw; 
}

编辑:

ex.StackTrace获取当前堆栈.堆栈跟踪从抛出异常的地方开始(发生错误),并在捕获异常的当前堆栈帧结束.所以它正在反转调用堆栈.因为你一旦发现堆栈跟踪就写出来,它就没有机会进一步向上调用堆栈.

根据您的工作,您可以尝试一些事情.

//To just see the stackTrace
Catch ex As Exception
     Throw
 End Try

Environment.StackTrace - 获取当前堆栈跟踪信息

//If you are trying to log the stacktrace 
Catch ex As Exception
     Respose.Write(Environment.StackTrace)
     Respose.Write(ex.StackTrace)
 End Try

//If is hiding then try - hiding as in throw ex vs just throw
Catch ex As Exception
     //careful innerException can be null
     //so need to check before using it
     Respose.Write(ex.InnerException)
 End Try

其中一种方法应该适合你.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有