如何修复mscorlib.dll中发生的''System.AggregateException'“

时间:2012-06-20 14:45:10

标签: c# .net exception aggregateexception

我在调试器中遇到这样的问题,程序停止执行。调试器没有向我显示该行,所以我不知道要修复什么。

  

发生了'System.AggregateException'类型的未处理异常   mscorlib.dll中

     

附加信息:未观察到任务的例外情况   通过等待任务或访问其Exception属性。作为一个   结果,终结器线程重新抛出了未观察到的异常。

     

无法获得本地或参数''的值   在这个指令指针处可用,可能是因为它已经存在   优化了。 System.Threading.Tasks.TaskExceptionHolder

如何解决我的问题?

我还发现这个问题非常相似Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away

5 个答案:

答案 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。