Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Was würdet ihr von einem try-except-finally-Konstrukt halten?

  Alt 10. Aug 2018, 08:15
Delphi-Version: 10.2 Tokyo
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
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat