我有一个将目录路径作为字符串的方法。在方法的开头,它检查此路径是否存在,如果不存在,则应引发异常。我认为它应该抛出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异常。

09-30 20:28