gpt4 book ai didi

c# - 谁负责检查空引用异常?

转载 作者:行者123 更新时间:2023-11-30 19:44:04 26 4
gpt4 key购买 nike

例如,如果您将一辆汽车传递给一个使用汽车的潜艇,该汽车应该检查空引用?

我是否应该费心将这段代码包装在下面的 if 语句中?这看起来很多余,显然我可以给出一个更好的例子,因为我无法捕获异常并以任何方式处理它。

或者我应该让异常冒泡给调用者吗?

例如:

Public Sub CarService(ByVal car As ICar)
If car IsNot Nothing Then
'do logic here
Else : Throw New ArgumentNullException
End If
End Sub

最佳答案

自己抛出 NullReferenceException 实际上是毫无意义的。因为这是

  1. CLR 会抛出同样的异常(至少当你访问您手动检查 null) 和
  2. 的相同引用
  3. 无论如何都不鼓励。见备注 here .有关相关讨论,请参阅 Is it necessary to throw a NullReferenceException from an extension method? .

但是,可以说至少对于公共(public) API 表面,您应该检查空引用并抛出 ArgumentNullException

Public Sub CarService(ByVal car As ICar)
If car Is Nothing Then
Throw New ArgumentNullException("car")
End If
' do logic here
End Sub

或查看Code Contracts .

关于c# - 谁负责检查空引用异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304053/

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