我在调试器中遇到这样的问题,程序停止执行。调试器没有向我显示该行,所以我不知道要修复什么。
发生了'System.AggregateException'类型的未处理异常 mscorlib.dll中
附加信息:未观察到任务的例外情况 通过等待任务或访问其Exception属性。作为一个 结果,终结器线程重新抛出了未观察到的异常。
无法获得本地或参数''的值 在这个指令指针处可用,可能是因为它已经存在 优化了。 System.Threading.Tasks.TaskExceptionHolder
如何解决我的问题?
答案 0 :(得分:51)
正如消息所说,你有一个任务引发了未处理的异常。
启用“中断所有异常(调试,例外)”并重新运行程序 这将首先抛出原始异常。
(附加评论):在VS2015(或以上)中。选择调试>选项>调试>常规并取消选中“启用我的代码”选项。
答案 1 :(得分:8)
您可以直接处理异常,这样就不会使程序崩溃(捕获AggregateException
)。您还可以查看内部异常,这将为您提供更详细的错误说明:
try {
// your code
} catch (AggregateException e) {
}
答案 2 :(得分:4)
如果您可以轻松重现问题,则接受的答案将起作用。但是,作为最佳实践,您应该捕获在任务中执行的任何异常(和日志记录)。否则,如果任务中发生任何意外情况,您的应用程序将崩溃。
Task.Factory.StartNew(x=>
throw new Exception("I didn't account for this");
)
但是,如果我们这样做,至少应用程序不会崩溃。
Task.Factory.StartNew(x=>
try {
throw new Exception("I didn't account for this");
}
catch(Exception ex) {
//Log ex
}
)
答案 3 :(得分:0)
在我的情况下,我在使用Edge.js时遇到了这个问题 - 所有问题都是C#Edge.js函数定义中的JavaScript语法错误。
答案 4 :(得分:0)
System.AggregateException HResult = 0x80131500 Mensaje =不能完全解决各种错误。 Origen = mscorlib,请执行以下操作:zh-CN System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)zh-CN System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification) en System.Threading.Tasks.Task
1.get_Result()zh-cn Itrebol.Presentation.FormularioTerceros。<> c__DisplayClass26_0 .b__1(Task 1 readTask) en C:\Users\GonzaloAlfonso\source\repos\ServicioItrebol - copia\Itrebol.Presentation\FormularioTerceros.xaml.cs: línea 535 en System.Threading.Tasks.ContinuationTaskFromResultTask
1.InnerInvoke()zh-CN System.Threading.Tasks.Task.Execute()示例1:JsonSerializationException:无法反序列化当前JSON对象(例如{“ name”:“ value”})进入类型'System.Collections.Generic.List`1 [Itrebol.Dato.Modelo.TERCEROS]',因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化。要解决此错误,请更改JSON转换为JSON数组(例如[1,2,3])或更改反序列化类型,使其成为普通的.NET类型(例如,不是整数的原始类型,不是数组或List的集合类型)可以从JSON对象反序列化。还可以将JsonObjectAttribute添加到类型中,以强制从JSON对象反序列化。在21。