Lo único que debes hacer es que Delphi maneje la excepción:
Código Delphi
[-]with SQLQuery do
begin
SQL.Clear;
SQL.Add(Cadena);
try
ExecSQL;
Transaction.Commit;
finally
Close;
end;
end;
Quita la parte except...end y sustitúyela por finally...end.
La parte que está después de except se ejecuta SOLO si ha ocurrido una excepción.
La parte después de finally se ejecuta SIEMPRE.
Esto te sirve por ejemplo cuando haz creado algo y sucede una excepción, para pode liberar este objeto.