В Delphi, как вы можете использовать try, наконец, и поймать вместе? Эквивалент Java/С# выглядит примерно так:
try {
// Open DB connection, start transaction
} catch (Exception e) {
// Roll back DB transaction
} finally {
// Close DB connection, commit transaction
}
Если вы попробуете это в Delphi, вы можете использовать try/finally или try/except; но никогда все три вместе. Я бы хотел, чтобы код выглядел следующим образом (который не компилируется):
try
// Open DB connection, start transaction
except on e: Exception do
begin
// Roll back transaction
end
finally // Compiler error: expected "END" not "finally"
begin
// Commit transaction
end