как исправить "' система.AggregateException ' произошло в mscorlib.файл DLL"

Я получаю такую проблему в отладчике и программа перестает выполняться. Отладчик не показывает мне строку, поэтому я не знаю, что исправить.

необработанное исключение типа System.AggregateException произошел в библиотеку mscorlib.dll файлы

дополнительная информация: исключение (ы) задачи также не наблюдались ожидание задачи или доступ к ее свойству Exception. Как в результате ненаблюдаемое исключение было переосмыслено потоком финализатора.

Не удается получить значение local или аргумент " как это не доступный на этом указателе инструкции, возможно потому что он оптимизирован. Система.Нарезка резьбы.Задачи.TaskExceptionHolder

Как устранить мою проблему?

Я также нашел этот вопрос, который очень похож не удается получить значение local или аргумент, поскольку он недоступен в указателе этой инструкции, возможно, потому, что он был оптимизирован

4 ответов


Как говорится в сообщении, у вас есть задание, которое возникло необработанное исключение.

включить Break на всех исключениях (Debug, Exceptions) и повторно запустить программу.
Это покажет вам исходное исключение, когда оно было брошено в первую очередь.


(комментарий прилагается): в VS2015 (или выше). Выберите "Отладка" > "Параметры" > "Отладка" > Общие и снимите флажок "Включить только мой код".


вы можете обрабатывать исключение напрямую, чтобы оно не привело к сбою вашей программы (поймав AggregateException). Вы также можете посмотреть на внутреннее исключение, это даст вам более подробное объяснение того, что пошло не так:

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

}

принято отвечать будет работать, если вы можете легко воспроизвести проблему. Однако, как правило, вы должны улавливать любые исключения (и ведение журнала), которые выполняются в рамках задачи. В противном случае приложение аварийно завершит работу, если в задаче произойдет что-либо непредвиденное.

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
   }
)

в моем случае я столкнулся с этой проблемой при использовании Edge.js-вся проблема заключалась в синтаксической ошибке JavaScript внутри края C#.определение функции js.