通常,当我处理文件和目录时,我想检查一个目录或文件的路径是否存在,我只是使用类似这样的东西:
if (Directory.Exists(path))
{
//Something...
}
但是,如果我正确理解了这个答案,建议允许仍然抛出异常,这意味着不要使用if
use try.. catch
。
在处理文件和目录时,这是一种通用方法if(Directory.Exists...
吗?还是有时最好使用这种方法?
注意:在看到第一个响应之后,只想澄清某些目录/路径可能不存在的情况是正常现象。
您几乎总是必须在某个地方捕获异常,尤其是对于I / O错误,以免程序在发生异常时被杀死。
在许多情况下,首先检查有效输入(例如)也很有意义Directory.Exists()
。这使您能够以一种用户友好的方式高效地报告并响应明显的用户错误情况。
但是,您不能保证在执行该调用与尝试以某种方式访问该目录之间不会删除该目录。否则,如果目录位于远程共享上,则网络不会失败。否则您将不会遇到其他类型的I / O错误。
有一些例外情况值得一提。OutOfMemoryException
例如,发生了意外(与某些数据结构变得过大相对)或其他类型的内部.NET故障。从这些类型的错误中恢复的可能性很小。但是对于其他任何事情,您在某个时候都应该捕获可能发生的异常。有时,这仅表示顶层catch (Exception e)
,您可以在其中以某种方式记录异常,然后干净地退出程序。
(我会注意到,未捕获的异常会导致应用程序终止,通常会记录在系统事件日志中。因此,只要用户愿意检查日志并从那里检索异常信息,那么就不必捕获所有例外…只是那些您知道该怎么做的例外。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句