TL; DR: это особенность отладки Visual Studio.Просто нажмите «Продолжить», когда возникнет исключение, и оно будет перехвачено.
Подробнее:
Способ работы async
методов заключается в том, что конечный автомат async
перехватывает исключение ипомещает его на возвращенный Task
.Позже, когда ваш код await
s Task
, исключение извлекается и повторно генерируется.
Однако Visual Studio имеет специальную логику отладки, которая обнаруживает, что исключение перехватывается после того, как оно имеетоставил ваш код и, похоже, сошел с ума, думая, что ваш код пренебрегал перехватом этого исключения.VS не понимает, что исключение хранится и будет наблюдаться позже.Вот почему вы видите сообщение «необработанное исключение».
Примечание: создание асинхронных оболочек для синхронных методов является анти-паттерном .