c# - C#:尝试 foreach 捕获继续
问题描述
我正在迭代一个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 的解决方案,请放弃所有希望。这里没有人会帮助你。如果您确实提出了一个好的答案,您甚至无法添加它,因为所有其他帖子都接受了有缺陷的解决方案。
解决方案
推荐阅读
- google-apps-script - 在向 GSheet 的一行发送电子邮件后,我想获得一个 raiting 并将其存储到同一个原始文件中
- c# - 在 asp.net core 3.1 web api 中,分组和版本控制不能很好地协同工作
- machine-learning - 需要卫星图像进行土地分类
- rest - 无法捕获从另一个函数抛出的异常
- php - 视频上传器,上传后尝试显示视频播放器
- javascript - 是否可以覆盖 JS 中的 window.location.hostname 值
- c# - Unity Android 在图库中保存屏幕截图
- reactjs - useContext 给出未定义的
- node.js - 为什么即使指定的挂载路径不是它自己的,中间件也会被调用?
- r - 按部分字符串匹配分组