这是我继承的应用程序的一段代码,用户有一个黄色的死亡屏幕:
对象引用未设置为对象的实例
就行:
bool l_Success ...
现在我95%确定错误的参数是ref l_Monitor
,这非常奇怪,考虑到对象在之前几行被实例化。任何人都知道为什么会发生这种情况?请注意,我在代码中的其他位置弹出了相同的问题。
IDMS.Monitor l_Monitor = new IDMS.Monitor();
l_Monitor.LogFile.Product_ID = "SE_WEB_APP";
if (m_PermType_RadioButtonList.SelectedIndex == -1) {
l_Monitor.LogFile.Log(
Nortel.IS.IDMS.LogFile.MessageTypes.ERROR,
"No permission type selected"
);
return;
}
bool l_Success = SE.UI.Utilities.GetPermissionList(
ref l_Monitor,
ref m_CPermissions_ListBox,
(int)this.ViewState["m_Account_Share_ID"],
(m_PermFolders_DropDownList.Enabled)
? m_PermFolders_DropDownList.SelectedItem.Value
: "-1",
(SE.Types.PermissionType)m_PermType_RadioButtonList.SelectedIndex,
(SE.Types.PermissionResource)m_PermResource_RadioButtonList.SelectedIndex);
答案 0 :(得分:1)
您确定尝试在l_Monitor实例上访问的其中一个属性不为null吗?
答案 1 :(得分:0)
暂时为该(loooooongg)行上的所有属性查询添加一些变量。运行调试器,检查值并转移小错误。
答案 2 :(得分:0)
我倾向于同意其他人的意见;它听起来像你传递的参数之一SE.UI.Utilities.GetPermissionList是null导致异常。最好的办法是启动调试器,并在调用代码之前检查变量是否正确。
答案 3 :(得分:0)
NullReferenceException
实际上是在catch块中抛出的,因此堆栈跟踪无法显示该行代码,因此它在调用者处停止。
它确实是l_Monitor
实例的一个属性。