关于异常System.NullReferenceException

什么是NullReferenceException

试图访问或取消引用空对象引用时引发的异常。

继承链

Object
Exception
SystemException
NullReferenceException

说明

尝试访问值为空的类型上的成员时,将引发NullReferenceException异常。NullReferenceException异常通常反映开发人员错误,可能引发的情况如下:
  1. 忘记了实例化引用类型
  2. 在初始化数组之前,忘记了维度。
  3. 从方法获取null返回值,然后对返回的类型调用方法。
  4. 使用的是表达式(例如,你要将方法或属性的列表链接在一起)来检索值,但尽管你要检查值是否为 null,运行时仍会引发 NullReferenceException 异常。 出现这种情况的原因是表达式中的中间值之一返回 null因此,永远不会计算 null 的测试。
  5. 正在枚举包含引用类型的数组元素,尝试处理其中一个元素会引发 NullReferenceException 异常。
  6. null传递的方法引发 NullReferenceException 异常。 某些方法会验证传递给它们的参数。 如果 null,则该方法将引发 System.ArgumentNullException 异常。 否则,会引发 NullReferenceException 异常。

以下 Microsoft 中间语言(MSIL)指令引发 NullReferenceExceptioncallvirtcpblkcpobjinitblkldelem.<type>ldelemaldfldldfldaldind.<type>ldlenstelem.<type>stfldstind.<type>throwunbox

HRESULT

NullReferenceException 使用值为0x80004003 的 HRESULT COR_E_NULLREFERENCE。

原文地址:https://www.cnblogs.com/yilang/p/12802057.html