Подтвердить что ты не робот

Как исправить "System.AggregateException" произошел в mscorlib.dll "

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

Необработанное исключение типа "System.AggregateException" произошло в mscorlib.dll

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

Невозможно получить значение local или argument '', поскольку это не доступный в этой инструкции, возможно, потому, что он был оптимизирован. System.Threading.Tasks.TaskExceptionHolder

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

}

Ответ 3

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

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

Ответ 4

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