Как исправить "System.AggregateException" произошел в mscorlib.dll "
Я получаю такую проблему в отладчике, и программа прекращает выполнение. Отладчик не показывает мне строку, поэтому я не знаю, что исправить.
Необработанное исключение типа "System.AggregateException" произошло в mscorlib.dll
Дополнительная информация: Исключение (исключения) задачи не наблюдалось ни путем ожидания заданий или доступа к свойству Exception. Как результат, незаметное исключение было восстановлено потоком финализатора.
Невозможно получить значение local или argument '', поскольку это не доступный в этой инструкции, возможно, потому, что он был оптимизирован. System.Threading.Tasks.TaskExceptionHolder
Как устранить проблему?
Я также нашел этот вопрос, который довольно похож на Невозможно получить значение local или argument, поскольку он недоступен в этом указателе инструкции, возможно, потому, что он был оптимизирован
Ответы
Ответ 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.