如何解决“System.AggregateException”发生在mscorlib.dll“

我在debugging器中收到这样的问题,程序停止执行。 debugging器不显示我的行,所以我不知道该怎么修复。

mscorlib.dll中发生未处理的“System.AggregateException”typesexception

附加信息:通过等待任务或访问其“exception”属性,不会观察到任务的exception。 结果,终结者线程重新抛出了未观察到的exception。

无法获取本地或参数“的值”,因为它在该指令指针处不可用,可能是因为它已被优化掉。 System.Threading.Tasks.TaskExceptionHolder

如何解决我的问题?

我也发现这个问题是非常相似的无法获得本地或参数的值,因为它不可用在这个指令指针,可能是因为它已经被优化了

正如消息所说,你有一个任务抛出了一个未处理的exception。

打开所有exception中断(debugging,exception)并重新运行该程序。
当它被扔在首位的时候,这会显示出最初的例外。

你可以直接处理这个exception,这样不会使程序崩溃(捕获AggregateException )。 你也可以看看内部exception,这会给你一个更详细的错误解释:

 try { // your code } catch (AggregateException e) { } 

如果您可以轻松地重现问题,则接受的答案将起作用。 但是,作为最佳实践,您应该捕获任务中执行的任何exception(和日志logging)。 否则,如果任务中出现意外事件,应用程序将会崩溃。

 Task.Factory.StartNew(x=> throw new Exception("I didn't account for this"); ) 

但是,如果我们这样做,至less应用程序不会崩溃。

 Task.Factory.StartNew(x=> try { throw new Exception("I didn't account for this"); } catch(Exception ex) { //Log ex } ) 

在我的情况下,我在使用Edge.js时遇到了这个问题 – 所有的问题都是C#Edge.js函数定义中的JavaScript语法错误。