如何在异常中打印完整的堆栈跟踪?
例如,在一个地方......
//---------------a
try
{
// some network call
}
catch(WebException we)
{
throw new MyCustomException("some message ....", we);
}
而在另一个地方......
//--------------b
try
{
// invoke code above
}
catch(MyCustomException we)
{
Debug.Writeline(we.stacktrace); // <----------------
}
我打印的堆栈跟踪,它只从a开始到b, 它不包括来自 WebException 的内部堆栈跟踪。
我怎样才能打印所有的堆栈跟踪???
For example, in one place...
//---------------a
try
{
// some network call
}
catch(WebException we)
{
throw new MyCustomException("some message ....", we);
}
...and in another place...
//--------------b
try
{
// invoke code above
}
catch(MyCustomException we)
{
Debug.Writeline(we.stacktrace); // <----------------
}
The stacktrace I print, it only start from a to b,
it doesnt include the inner stacktrace from the WebException.
How can I print all the stacktrace???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我通常对异常使用
.ToString()
方法以文本形式显示完整的异常信息(包括内部堆栈跟踪):示例输出:
I usually use the
.ToString()
method on exceptions to present the full exception information (including the inner stack trace) in text:Sample output:
使用这样的函数:
然后你可以这样调用它:
Use a function like this:
Then you can call it like this:
1.创建方法:如果您将异常传递给以下函数,它将为您提供所有方法和详细信息,这些方法和详细信息是异常原因。
2.调用方法:可以这样调用方法。
3.获取结果:
1. Create Method: If you pass your exception to the following function, it will give you all methods and details which are reasons of the exception.
2. Call Method: You can call the method like this.
3. Get the Result:
推荐使用LINQPad相关的
nuget
包,然后就可以使用exceptionInstance.Dump()
。对于 .NET core:
LINQPad.Runtime
对于 .NET Framework 4 等。
LINQPad
示例代码:
运行结果:< /强>
LinqPad nuget 包是打印异常堆栈信息的最棒的工具。
愿它对您有帮助。
Recommend to use LINQPad related
nuget
package, then you can useexceptionInstance.Dump()
.For .NET core:
LINQPad.Runtime
For .NET framework 4 etc.
LINQPad
Sample code:
Running result:
LinqPad nuget package is the most awesome tool for printing exception stack information.
May it be helpful for you.