C#: попробуйте foreach catch continue
Я повторяю IEnumerable
от EnumerateFileSystemEntries
где действие получения следующего элемента может вызвать отказ в доступе исключение. Поэтому я завершаю попытку, но не хочу прекращать итерацию только потому, что один элемент в середине плохой. После плохого есть еще хорошие элементы. Я поставилcontinue
в моем улове, но это неверно. Есть ли способ сделать то, что я здесь не могу?
paths = Directory.EnumerateFileSystemEntries(RootDirectory, SearchPattern, SearchOption);
try
{
foreach (var path in paths)
{
// Do something with the paths
}
} catch (Exception ex)
{
Debug.Print(ex.Message);
continue; // ERROR: "No enclosing loop out of which to break or continue"
}
Я просмотрел каждый ответ в 3 повторяющихся сообщениях. Все они страдают от одной и той же проблемы. Единственное решение, которое я видел, - это перенос моего приложения на ядро .NET, что представляет собой долгий процесс: https://docs.microsoft.com/en-us/dotnet/core/porting/
Если вы пришли сюда в поисках решения на основе FrameWork, оставьте все надежды. Здесь вам никто не поможет. Если вы дадите хороший ответ, вы даже не сможете его добавить, потому что все остальные сообщения содержат ошибочные решения.