gpt4 book ai didi

.net - 显式抛出 NullReferenceException 的原因?

转载 作者:行者123 更新时间:2023-12-04 09:42:32 25 4
gpt4 key购买 nike

我正在清理一些遗留代码,我发现了明确抛出 NullReferenceException 的方法。 (例如:检查类的某些属性是否为空或检查配置时)。由于在空引用的情况下 CLR 会抛出这种类型的异常,因此对于应用程序显式抛出的异常来说,这似乎是一个非常糟糕的选择。

我的问题是 - 是否有任何原因导致 NullReferenceException从代码中显式抛出异常会是一个不错的选择吗?

最佳答案

NullReferenceException 的文档意味着你不应该从应用程序中抛出它:

Note that applications throw the ArgumentNullException exception rather than the NullReferenceException exception discussed here.



而且我确信我已经在其他地方看到过指导(目前找不到任何指导 -> 在这里 https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard-exception-types )你应该避免抛出运行时抛出的异常类型(尽管我即将链接到一些显示运行时抛出“应用程序”异常)

如果您正在检查方法中的属性,则在继续之前,听起来您可能希望将它们替换为 InvalidOperationException :

InvalidOperationException is used in cases when the failure to invoke a method is caused by reasons other than invalid arguments.



方法调用的错误状态听起来符合这个定义。

关于.net - 显式抛出 NullReferenceException 的原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7821755/

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