我有一种不一致失败的方法,因此无法确定地复制。
我已经捕获了堆栈跟踪和其中一个失败的异常(下面)。通常这只是探索堆栈以了解代码如何达到当前状态的情况。
但是,由于该方法标记为 async ,因此堆栈跟踪毫无意义。
我希望能够检查各种变量的设置。有没有人有任何提示/提示/证明使用异步堆栈的方法,所以我可以找到我的问题的根源?
Object reference not set to an instance of an object.
答案 0 :(得分:4)
您可以将Async Diagnostics库与PostSharp一起使用以获取逻辑堆栈。请参阅文章Async Diagnostics blog post
答案 1 :(得分:0)
堆栈跟踪通常在异步代码中不可用,因为它只会告诉您对某些异步方法的调用失败。 调试也不是一步一步,因为如果它很难重现,那么它可能是一个定时错误,你永远不会在调试中重现它。
而是使用try / catch并检查聚合异常。确保你的方法返回一个Task,并且等待这个Task,否则你将无法捕获任何东西。
我认为MSDN documentation会帮助您正确捕捉错误。