Yo además le agregaría el nombre de la clase del error:
Código Delphi
[-]AddLog('Ha ocurrido un error. Error: ' + Error.ClassName+' - 'Error.message);
Esto después te puede servir para no hacer lo mismo cada que pase algo. Algo como:
Código Delphi
[-]
Try
...
Except
On E:EDBEngineError do showmessage('erro de DB');
On E:EDIvByZero do showmessage('divisón por cero');
On E:EBombaNuclear do showmeesage('Cayó la bomba');
end;
De esta forma podrías tratar cada error de manera especial. Si falló la conexión te sales, si fue alguna otra cosa, podrías hacer otra cosa.
o como recomiendan en la ayuda de delphi:
Código Delphi
[-]
try
...
except
on EZeroDivide do HandleZeroDivide;
on EOverflow do HandleOverflow;
on EMathError do HandleMathError;
else
HandleAllOthers;
end;
Además, de esta forma podrías poner todo tu código en un solo bloque Try..Except. No tendrías necesidad de poner try..except a cada instrucción.
Si todos los errores son de la misma clase, se deberían poder identificar por número con Error.ErrNum, con lo que también podrías darle un manejo distinto a cada uno.