c# - 使用网络/文件系统调用时防止异常(预防性维护)?

标签 c# exception filesystems filenotfoundexception

我有一个 friend 在这个问题上与我有不同意见,我只是想就这种情况下谁对谁错获得一些反馈。

FileInfo file = ...;

if (file.Exists)
{
    //File somehow gets deleted

    //Attempt to do stuff with file...
}

我的 friend 指出的问题是,“那么当我检查文件是否存在时如果文件存在怎么办?没有什么可以防止在检查后文件立即被删除并尝试访问它导致异常。那么,是否值得事先检查是否存在?”

我唯一能想到的是 MSDN 清楚地检查了他们的示例,所以肯定还有更多。 MSDN - FileInfo .但是,这确实让我想知道……额外的电话是否值得?

最佳答案

我会同时拥有 if (file.Exists)try catch。仅依赖异常处理并不能明确表达您的想法。 if (file.Exists) 不言自明。

如果有人在检查和处理文件之间的那一毫秒内删除了文件,您仍然可以获得异常。然而,还有其他条件可能导致异常: 文件是只读的;您没有请求的安全权限,等等。

关于c# - 使用网络/文件系统调用时防止异常(预防性维护)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823395/

相关文章:

android - 字符串值的 java.lang.NumberFormatException

java - 哪个更好/更有效 : check for bad values or catch Exceptions in Java

linux - 安装实例存储损坏 ec2 实例

c# - Azure SignalR 服务 | Asp.Net 网络 API |控制台客户端

c# - 如何根据字符串表示形式创建表示命名空间的树

c# - 使用 Entity Framework 查询许多(~100)个搜索词

python - 如果不立即重新引发异常回溯,则隐藏

创建文件系统,需要 C 的建议

linux - 如何让linux文件系统断电安全?

c# - 如何在 C# 中手动构建 SOAP 信封?