Ver Mensaje Individual
  #4  
Antiguo 27-03-2009
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Reputación: 23
ContraVeneno Va por buen camino
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.
__________________


Última edición por ContraVeneno fecha: 27-03-2009 a las 19:09:40.
Responder Con Cita