2008-09-10 10 views
0

Dies ist ein Codesegment aus einer App I geerbt haben, bekam ein Benutzer einen Yellow Bildschirm des Todes:NullReferenceException auf instanziierten Objekt?

Objektverweis nicht

auf der Linie auf eine Instanz eines Objekts festgelegt :

bool l_Success ... 

Jetzt 95% sicher, dass ich das fehlerhafte Argument ref l_Monitor ist, die das Objekt sehr seltsam ist instanziiert vor ein paar Zeilen unter Berücksichtigung. Jeder hat eine Ahnung, warum es passieren würde? Beachten Sie, dass das gleiche Problem an anderen Stellen im Code aufgetreten ist.

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

Siehe auch [Was ist eine NullReferenceException in .NET?] (Http://stackoverflow.com/q/4660142/90527) – outis

Antwort

1

Sie sind sicher, dass eine der Eigenschaften, auf die in der l_Monitor-Instanz zugegriffen werden soll, nicht null ist?

0

Sprinkle in einigen Variablen für alle Property-Abfragen auf dieser (loooooongg) Zeile vorübergehend. Führen Sie den Debugger, überprüfen Sie die Werte und Corner den kleinen Fehler.

0

Ich bin geneigt, mit den anderen zuzustimmen; Es klingt wie einer der Parameter, die Sie übergeben. SE.UI.Utilities.GetPermissionList ist null, was die Ausnahme verursacht. Am besten starten Sie den Debugger und prüfen, ob die Variablen vor dem Aufruf des Codes sind.

0

Die NullReferenceException wurde tatsächlich in einem catch-Block geworfen, so dass die Stack-Ablaufverfolgung diese Codezeile nicht anzeigen konnte, sondern stattdessen beim Aufrufer gestoppt wurde.

Es war in der Tat eine der Eigenschaften der l_Monitor Instanz.

Verwandte Themen