Wenn Du Parse und Row noch mit nil initialisierst...
Warum?
Beide Variablen werden vor dem try zugewiesen. Somit haben sie im finally definierte Werte.
Es könnte lediglich passieren, daß im
Row := TStringList.Create;
eine
Exception auftritt und dann das Parse nicht mehr freigegeben wird.