gpt4 book ai didi

C#:我应该抛出 ArgumentException 还是 DirectoryNotFoundException?

转载 作者:可可西里 更新时间:2023-11-01 07:54:57 24 4
gpt4 key购买 nike

我有一个将目录路径作为字符串的方法。在该方法的开头,它检查此路径是否存在,如果不存在,则应抛出异常。我认为它可能应该抛出 DirectoryNotFoundException 或其他东西,而不是不太具体的 ArgumentException

我阅读了那个 DirectoryNotFoundException 的 msdn 文档,它是这样说的

DirectoryNotFoundException uses the HRESULT COR_E_DIRECTORYNOTFOUND which has the value 0x80070003.

我不知道这到底是什么意思,它看起来有点吓人……我应该仍然抛出那个异常,还是应该坚持使用常规的 ArgumentException?或者我应该坚持 ArgumentException 只是因为它是我提示的一个论点?或者?

public void MakeFunOf(string path)
{
if(!Directory.Exists(path))
throw new WhatException();
TellJokeAbout(path);
PointAndLaughAt(path);
}

最佳答案

如果您希望开发人员在调用您的方法之前检查目录是否存在,请使用 ArgumentException。如果您希望开发人员可以选择处理丢失的目录,请使用 DirectoryNotFound 异常。

换句话说,“开发人员告诉我访问不存在的目录是错误吗?”

就个人而言,我会使用 DirectoryNotFound 异常。

关于C#:我应该抛出 ArgumentException 还是 DirectoryNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1073038/

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