当 Visual Studio 报告堆栈跟踪时,我有时会收到诸如“字符串值不是有效的日期时间”之类的信息。这个问题与该错误无关,但当我查看异常时,我永远找不到实际值。例如,是“3”,还是“Hello”?我通常需要在程序中回溯才能得到它。我的问题是,当我们谈论 .NET 调用时,异常对象实际上是否在某处包含导致异常的值?
最佳答案
不,事实并非如此。一般来说,当抛出自己的异常时,如果可能的话,在消息中提供这一点并不是一个坏主意。但即使是标准方法也无法做到这一点。就这么简单。
这就是为什么有些项目会编写大量日志文件,记录每个 functoin 调用的所有值(见此),生成数 TB 的信息,然后快速处理。
关于C# 异常对象是否包含导致异常的实际值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51105628/