如何解决“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语法错误。