gpt4 book ai didi

c# - IOException 与检查 File.Exists?

转载 作者:太空狗 更新时间:2023-10-29 22:53:07 26 4
gpt4 key购买 nike

(我搜索了类似的线程,但找不到任何解决此特定问题的方法,尽管有几个类似的线程,例如 herehere。)

我正在评估我们应用程序的性能,我注意到我们收到了一些 IOExceptions“找不到资源”。我不确定它到底发生了多少次(很大程度上取决于用户如何使用该应用程序),但至少有十几次。

我假设一般情况下异常的性能开销很大,就像 File.Exists() 之类的文件 I/O 调用一样。我知道在尝试加载文件之前检查文件是否存在总是好的做法。我的问题是,如果我检查这个特定文件是否存在,我会看到多少性能提升? (同样,忽略“无论如何你都应该这样做”,我只是想了解性能)。

选项 1:

try
{
return (ResourceDictionary) Application.LoadComponent(uri);
}
catch (Exception)
{
//If it's not there, don't do anything
}

这不会进行额外的 IO 调用,但有时会抛出并吞下异常。

选项 2:

if(File.Exists(uri))
{
return (ResourceDictionary) Application.LoadComponent(uri);
}

最佳答案

一般来说,如果文件应该 存在(即:它是应用程序部署的一部分),那么我会使用异常检查,而不是其他任何东西。这是因为,在这种情况下,异常确实是一种异常和意外的情况。

如果文件是由用户输入的,检查是否存在就变得很有意义。然而,这仍然没有消除异常处理的需要,因为文件可能在您检查和打开/使用它之间被删除。因此,您仍然需要异常处理 - 在这种情况下,您可能仍然希望只使用您的第一个选项代码,但要确保异常处理足够干净,以始终提供一种行为,即使如果文件不存在。

关于c# - IOException 与检查 File.Exists?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12044551/

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