Felix2000 hat folgendes geschrieben : |
es werden hier keine Defaultwerte für die jeweiligen Arrayfelder gesetzt, die null sind (also eben diese Null reference Exception auslösen). |
Du hast ja auch nirgends Standardwerte definiert, soweit ich das sehe. Stattdessen fragst du innerhalb der Schleife ab, ob das Array-Element
null ist, und schreibst überhaupt nur für diejenigen, die das nicht sind, eine Zeile in die Datei. Wenn für die
null-Elemente ein Standardeintrag hinzugefügt werden soll, müsstest du einen
else-Zweit einbauen.
Außerdem ist der
try-
catch-Block unschön. Erstens sollte man
NullReferenceExceptions nicht abfangen, sondern an der jeweiligen Stelle prüfen, ob ein Element
null ist. Und zweitens ergibt sich in einer bestimmten Situation ein wahrscheinlich nicht erwartetes verhalten: Ist
SegmentName oder
Zeile null, wird die Exception ausgelöst, etwas in der Konsole ausgegeben und ein
unvollständiger Eintrag in die Datei geschrieben (
writer.writeLine steht ja zusätzlich auch noch im
finally-Teil). Wenn
Nr ein String oder ein anderer
nullable ist, könnte es sogar passieren, dass die letzte Zeile oder die eine leere Zeile geschrieben wird, da
strCurrentValue noch gar nicht geändert wurde.