如何对手柄的NullReferenceException

时间:2012-08-01 08:58:40

标签: vb.net nullreferenceexception

我想问一下如何能够包含我得到的错误“对象引用未设置为对象的实例。”,nullreferenceException。我正在尝试将我从gridview获取的值赋给变量。我在第一行收到错误。当值为null时,我怎么能处理这种情况。我尝试过使用isnot Nothing但是它仍然给我错误并且isdbnull不会工作,因为我没有处理数据表。

我只在gridview仍然为空时才会出现此错误,我该如何处理。

If Not IsNothing(ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value) Then
    PIM = ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value
Else
    PIM = FormatNumber("0.00", 2)
End If

1 个答案:

答案 0 :(得分:1)

问题在于您不知道代码行中的null是什么。考虑问题行,你有这个表达式:

ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value

有六件事可以评估该表达式中的null

  • ProductsRawMaterialGrid可以是null
  • ProductsRawMaterialGrid.GridViewElement可以是null
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow可以是null
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells可以是null
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix")可以是null
  • ProductsRawMaterialGrid.GridViewElement.CurrentRow.Cells("PercentageInMix").Value可以是null

您只检查其中一个(最后一个)。不幸的是,如果其他任何人都是null,您会看到NullReferenceException

一个有根据的猜测是,当您调用代码时,CurrentRownull,或者您的小区名称错误且.Cells("PercentageInMix")null。拆分此代码或在调试器中检查它应该可以帮助您解决问题。

相关问题