我有一个将目录路径作为字符串的方法。在方法的开头,它检查此路径是否存在,如果不存在,则应引发异常。我认为它应该抛出DirectoryNotFoundException
或某些东西,而不是不太具体的ArgumentException
。
我阅读了DirectoryNotFoundException
的msdn文档,并说
我不知道这到底是什么意思,而且看起来有点吓人……我还是应该抛出该异常,还是应该坚持使用常规的ArgumentException
?还是仅仅因为它是我抱怨的一个参数而坚持使用ArgumentException
?要么?
public void MakeFunOf(string path)
{
if(!Directory.Exists(path))
throw new WhatException();
TellJokeAbout(path);
PointAndLaughAt(path);
}
最佳答案
如果希望开发人员在调用方法之前检查目录是否存在,请使用ArgumentException。如果希望开发人员选择处理丢失的目录,请使用DirectoryNotFound异常。
换句话说,“开发人员告诉我访问不存在的目录是否是一个错误?”
就个人而言,我将使用DirectoryNotFound异常。