Nun ja, hier ist der Fehler doch der Ressourcenschutzblock ... lässt man den weg, ist alles OK.
Bzw. der Ressourcenschutzblock enthält selber Code, der zu einem Fehler führen kann.
Wenn vorher alles OK was, dann möchte ich den natürlich sehen, aber ansonsten halt ganz gern den ersten/eigentlichen Fehler.
Das
EndUpdate
führt zu einem Fehler, weil vorher etwas falsch gemacht wurde.
Data.ReadComponent(Wrapper);
macht etwas, obwohl es gar nichts machen kann (ist ja ein Lesefehler). Das ist der eigentliche Fehler.
Delphi-Quellcode:
procedure TForm1.DoLoadSomething( const AFilename : string );
begin
FreeAndNil(FSomething); // hier kann es knallen, wenn uns jemand einen dangling pointer hinterlassen hat
FSomething := TSomething.CreateFromFile( AFilename ); // da kann es knallen
end;
Delphi-Quellcode:
try
MachWas;
finally
try
RäumAuf;
except
end;
end;
So geht es auch, aber Schön ist was Anderes.
Nein, in dem Fall geht das mit
Delphi-Quellcode:
try
MachWas_AberNichtsKaputt;
except
RäumAuf;
raise;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)