У меня есть метод, в котором я проверяю, если файл существует в файловой системе (UWP):FileNotFoundException, но поймать блок не введен (метода Асинхронного)
private async Task<bool> FileExistsAsync(string filename)
{
try
{
if (filename != null)
{
var item = await StorageFile.GetFileFromPathAsync(filename); // FileNotFoundException happens here
if (item != null)
return true;
}
return false;
}
catch (Exception e) // I Expect the debugger to handle the FileNotFoundException here, but it never happens
{
return false;
}
}
Когда я пытаюсь получить несуществующий файл с StorageFile.GetFileFromPathAsync
, я получаю исключение. По какой-то причине он не обрабатывается моим поймать блок, но выглядит это вместо:
То, что я пытался:
- Явного обрабатывать
FileNotFoundException
- Добавить Try -catch-block внутри if-statement
Обратите внимание, что этот метод необходим оставаться асинхронным, потому что у меня есть другой материал, который происходит в этом методе, который я удалил, чтобы предоставить Minimal, Complete, and Verifiable example.
Почему отладчик не входит в мой блок catch при выбросе FileNotFoundException
?
попробуйте это. catch (Исключение) { return false; } –
@vivek Это ничего не изменило. Кроме того, мне нужен параметр в моем коде (как я уже сказал, я удалил ненужные части) –