Moin!
Wenn ich mir verschiedene Quellen so anschaue, insbesondere wenn man mit Datenbanken zu tun hat, fällt mir immer wieder auf wie sperrig das
Exception-Handling eigentlich ist:
Delphi-Quellcode:
myBoolAllesOk := False;
try
try
myTransaction.StartTransaction;
myDB.TuWas;
myBoolAllesOk := True;
except
on E: EIrgendwas do myTransaction.Rollback;
end;
finally
if myBoolAllesOk then
myTransaction.Commit;
end;
Und man muss sich drauf verlassen, dass die Transaction nicht auch noch zwischen dem Rollback und dem Commit zufällig anderswo eine Transaction gestartet hat. Um auf Nummer sicher zu gehen, gibts die mitlaufende boolsche Variable. Wie elegant wäre da sowas:
Delphi-Quellcode:
try
myTransaction.StartTransaction;
myDB.TuWas;
except
on E: EIrgendwas do myTransaction.Rollback;
finally
myTransaction.Commit;
end;
Soweit ich das überblicken kann ließe sich eine solche Spracherweiterung problemlos einbauen weil es rückwärtskompatibel wäre.
Was haltet ihr davon?
Grüße
Cody