【发布时间】:2020-12-14 20:10:26
【问题描述】:
我有一个用例,每当发生任何异常时,我都需要记录完整的堆栈跟踪以及所有详细信息以及行号。我看到有两种方法可以在这里使用Exception.ToString() 和Exception.Stacktrace,但我很困惑我应该使用哪一种?
另外,我看到很多 StackOverflow posts 和这个 article,人们在谈论使用 Ben.Demystifier 库或其他方式。
catch (Exception ex)
{
Console.WriteLine(ex.Stacktrace);
Console.WriteLine(ex.ToString());
// using Ben.Demystifier library
Console.WriteLine(ex.ToStringDemystified());
}
我只是想了解我们可以用来记录异常的完整堆栈跟踪的最佳和推荐方法是什么?
【问题讨论】:
-
如果你不喜欢 ToString。使用某人简化了可以整理它的库。 “我只是想了解我们可以用来记录异常的完整堆栈跟踪的最佳和推荐方法是什么”没有推荐的方法,只有什么是可能的,什么是不可能的。这是一个选择你自己的冒险和你可以选择的人,而不是我们
-
您一定看到 ex.Stacktrace 和 ex.ToString() 的结果之间的差异。您认为哪一个符合您的目的?