这是一个开放性问题,但我想通过良好的异常处理实践来提高我的技能,具体来说就是什么时候需要检查 null 值。
我大多数情况下都知道何时需要检查 null 值,但必须承认有一半的时间我并不知道,这让我很困扰。我知道整型不能设置为 null,除非使用可空整型。我知道字符串可以设置为 null 或空值,因此可以检查 IsNullOrEmpty。
显然,在构造函数中,您也要添加显式检查。这是必须的。我认为,每当将数组、通用对象或其他对象传递到可能设置为 null 的方法中时,您应该检查 null 值,对吗?
但是,异常处理还有更多内容。例如,我不知道什么时候总是需要在代码中显式检查和抛出 null 引用异常。如果我有传入参数,通常情况下很简单,但总会有一些情况让我自问:是否需要显式抛出 null 异常?
我没有具体的例子,但想知道是否有一个好的参考资料,真正讨论与异常处理相关的内容,例如何时抛出异常(在方法、类中等)。
null
,并抛出ArgumentNullException
。(当然,如果null
是有效的参数,则除外。)如果我不这样做,调用者将会得到一个NullReferenceException
,这基本上意味着“你调用的代码是一个有缺陷的混乱”。对于私有代码,我宁愿使用Debug.Assert
而不是抛出异常。在调试版本中,它具有相同的错误报告功能,在发布版本中,错误永远不会发生。 - Joren