Hallo zusammen,
ich krieg momentan bei meinem Programm die Krise...
bei den Kollegen öffnet sich beim Programmstart folgender Fehler:
Fehlermeldung:
************** Ausnahmetext **************
System.ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: value
bei System.String.IndexOf(String value, Int32 startIndex, Int32 count, StringComparison comparisonType)
bei Swyx.frmSwyxClass.FindRecursive(TreeNode treeNode, String search, String status)
bei Swyx.frmSwyxClass.SetStatusIconAtTreeViewOrganigramm(String speedDialName, String statusParameter)
bei Swyx.frmSwyxClass.LineMgr_DispOnLineMgrNotification(Int32 msg, Int32 param)
bei Swyx.frmSwyxClass.<>c__DisplayClass3e.<LineMgr_DispOnLineMgrNotification>b__36()
Scheint wohl der Fehler zu sein, dass ich ein IndexOf mache und der Prüfwert (=value) NULL ist.
Ich habe ganze drei Stellen gefunden wo ich IndexOf prüfe:
if (tnCurr.Text.ToString().IndexOf(strText, StringComparison.InvariantCultureIgnoreCase) >= 0)
und je zwei Mal
int index = parent.Nodes.IndexOf(node);
Ersteres hab ich mit
if (strText != null)
abgefangen.
Die anderen beiden habe ich mit try-catch umschlossen.
Leider tritt der Fehler noch immer auf und ich hab absolut keine Ahnung, wieso?
Habt ihr da evtl. noch Tipps?
Vielen Dank.
Mit freundlichen Grüßen,
SeCuRiiTaS
Das liegt daran, dass bei Textboxen der Text nicht NULL ist, sondern "", also ein String.Empty. Deine Bedigung wird also nicht erfüllt. Prüfe auf einen leeren String oder auf die Länge des Strings (text.Length > 0).
Der StackTrace sagt, es geth um String.IndexOf. parent.Nodes.IndexOf(node); sieht nicht nach einem String aus, dann wirds schon die andere Funktion sein.
Einen Leerstring darf man allerdings schon übergeben. Irgendwas scheint also trotzdem nicht zu stimmen.
Passt der StacKTrace zu dem was du gefunden hast?
Haben die Kollegen tatsächlich die letzte compilierte Version?
Hallo SeCuRiiTaS,
siehe [FAQ] NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt - nimm einen Debugger (bzw. ein ordentliches Errorlogging) und du findest heraus, wo genau das Problem liegt.
Damit sollte alles gesagt sein ==> Geschlossen