gpt4 book ai didi

c# - 我如何在 C# 中产生并捕获必要的异常?

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:59 25 4
gpt4 key购买 nike

我正在使用以下方法:

    private IEnumerable<TreeNode> GetChildNodes(TreeNode parent)
{
string path = parent.Tag.ToString();

// Add Directories
string[] subdirs = Directory.GetDirectories(path);

foreach (string subdir in subdirs)
{
yield return GetChildNode(subdir);
}

// Add Files
string[] files = Directory.GetFiles(path);

foreach (string file in files)
{
var child = GetChildNode(file);
fileNodeMap[file] = child;
yield return child;
}
}

除了 Directory.GetDirectories() 和 Directory.GetFiles() 都可以抛出我想捕获的异常外,这工作正常。

由于我使用了 yield,我无法捕捉到使用这些方法的代码片段(如果有捕捉,则不能将 yield 放在 try 的主体中)。我知道我可以删除 yield 并简单地将我的 child 添加到集合中,但我很好奇有人会如何从这两种方法中捕获 IOExceptions 并仍然利用 yield?

最佳答案

怎么样(第一部分):

string[] subdirs;
try
{
subdirs = Directory.GetDirectories(path);
}
catch (IOException e)
{
// Do whatever you need here
subdirs = new string[0];
}

第二个也是如此。您不需要在该 try block 中屈服。如果这没有帮助,请编写您希望有效的任何代码,以便我们可以看到在抛出异常时您打算做什么。

关于c# - 我如何在 C# 中产生并捕获必要的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com