gpt4 book ai didi

c# - 在捕获 C# IOException 时,我如何知道是什么文件导致了异常?

转载 作者:行者123 更新时间:2023-12-02 16:23:51 25 4
gpt4 key购买 nike

考虑像这样的 C# 代码片段 (fileexcpt.py):

    static void test1()
{
try
{
string text1 = File.ReadAllText(@"dir1\text1.txt");
string text2 = File.ReadAllText("text2.txt");
}
catch (IOException ex)
{
Console.Out.WriteLine(string.Format("Error reading file: {0}", ex.error_filename));
}
}

我希望 ex.error_filename 或类似的东西可以告诉我是什么文件(文件路径)导致了 IO 异常。可以吗?

我看到来自 https://learn.microsoft.com/en-us/dotnet/standard/io/handling-io-errors 的示例, 但未找到此类信息。

至于Python,自然是这样的:

try:
text1 = open(r"dir1\text1.txt", "r").read();
text2 = open("text2.txt", "r").read();
except IOError as ex:
print("Error reading file: {0}".format(ex.filename));

最佳答案

您应该尽可能避免使用异常编程。当您确实需要捕获异常时,然后将代码隔离到单个失败单元中 - 不要跨多个故障点捕获。

试试这个,作为例子:

static void test1()
{
string text1 = ReadAllTextGuarded(@"dir1\text1.txt");
string text2 = ReadAllTextGuarded("text2.txt");
if (text1 != null & text2 != null)
{
//Success
}
}

static string ReadAllTextGuarded(string filename)
{
try
{
return File.ReadAllText(filename);
}
catch (IOException ex)
{
Console.Out.WriteLine(string.Format("Error reading file: {0}", filename));
}
return null;
}

关于c# - 在捕获 C# IOException 时,我如何知道是什么文件导致了异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64961888/

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