我从Windows Phone 8.1应用程序的用户那里得到以下堆栈跟踪,如何识别实际位置或错误行?
Error Code: -2147024894
Error Message:The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at EM.Backend.LibraryScanner.<ScanLibrary>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at EM.App.<VerifyFirstLaunch>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__3(Object state)
at System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore()
答案 0 :(得分:0)
可能一个好的日志策略应该足以为意外的异常添加更多的上下文。
您应该能够自己分析代码并找到关键代码部分,您可能会觉得在某些情况下代码可能会失败。
此外,未使用的 code contracts 和按合同模式设计可以防止出现许多意外问题,或在发生时轻松识别它们。
可悲的是,如果您没有准备好代码来处理这些情况 - 比如您的用户问题 - 那么您将遇到麻烦,并且您需要询问用户他/她在做什么时抛出异常,并尝试逐步重现该问题。