c# aufeinmal Fehler der vorher nicht da war?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Wenn die hier verarbeitete Zeile

string[] entries = line.Split(',');

kein Komma beinhaltet, hat das Array nur einen Eintrag. Somit gibt es auch keinen Index 1, den du in der Folgezeile versuchst, aus dem Array zu ziehen.

Bei solchen Operationen ist es ratsam, erst zu prüfen, wie viele Einträge das Array nun hat, bevor man versucht, auf Indizes zuzugreifen, die womöglich nicht existieren.

if (entries.Length > 1)
{
  // ...
}

Das bedeutet du hast ein Array und versuchst auf einen Index zuzugreifen den es nicht gibt. Im deinem Fall versuchst du den zweiten Eintrag von entries zu bekommen, der existiert aber nicht wenn in lines kein Komma vorhanden ist. Um das zu beheben könntest du einen try-catch block machen, oder du führst den Code wie er da steht erst aus, nachdem du dich mit einer If-Abfrage vergewissert hast dass entries auch genug Einträge hat...

Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren
entries[1]

wird halt nicht immer existieren.

Lass dir

line

einfach Ausgeben, bevor du splittest. Ist kein Komma drinnen gibt's auch keinen Split.

user newuser = new user

kann das sein dass

user newuser = newuser

sprich gehört eigentlich zusammen

jetzt hab ich den Ordner wo alles gespeichert war gelöscht jetzt geht's wieder obwohl ich am code nichts geändert hab hmm


DerEinsiedler  24.07.2021, 11:01

Das ist doch ganz normal, dass das Auftreten von Fehlern auch von den Eingangsdaten abhängt.

Du hattest früher einfach nicht gut getestet.

1