Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-04-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Descripcion de errores

Hola amigos

Quisiera saber si Delphi pesee algun objeto que contenga o capture los errores que se producen durante la ejecucion de una aplicacion. En visual Basic existe el objeto "err", que contiene la descripcion del error producido, su numero, etc.
¿En Delphi existe algo similar?, lo que pasa es que estoy trabajando el tratamiento de errores (excepciones) en forma centralizada, es decir cualquier error que se produce durante la aplicacion lo derivo a una funcion que envia el mensaje correspondiente al usuario, el cual decide si reintentar o abadonar el prodedimiento, por lo cual necesito tener la descripcion de cualquier error producido en alguna funcion o procedimiento para enviarsela como parametro a la funcion de tratamiento de errores entes mencionada.


Se agradece cualquier ayuda de antemano.
Responder Con Cita
  #2  
Antiguo 11-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para manejar centralizadamente los errores (excepciones) podrías colocar una componente TApplicationEvents e implementar su evento OnException.

También podrías definir un procedimiento

Código:
procedure ManejaExcepcion(E: Exception);
begin
...
end;
y en cada bloque try-except declarar un objeto Exception:

Código:
try
...
except
  on E: Exception do
    ManejaExcepcion(E);
end;
// Saludos
Responder Con Cita
  #3  
Antiguo 11-04-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Gracias Roman, pero cuando intento realizar esto:

procedure ManejaExcepcion(E: Exception);
begin
...
end

Me envia el siguiente error "undeclared identifier exception", que me imagino debe ser porque no reconoce el tipo exception como un idehntificador valido, ¿debo declararlo o usarlo (uses) en alguna parte del proyecto?.......
Responder Con Cita
  #4  
Antiguo 13-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Debes incluir la unidad SysUtils

// Saludos
Responder Con Cita
  #5  
Antiguo 13-04-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
Gracias Roman

Si fuera posible me gustaria que me ayudaras con lo de las exepciones. Te cuanto, como te he dicho en los anteriores mensajes estoy trabajando las excepciones en forma centralizada, por lo cual, cualquier error ocurrido en la aplicacion se deriva a una funcion que analiza el error y envia el mensaje correspondiente al usuario, mi problema es el siguiente: ¿existe alguna propiedad en las excepciones que me permita idertificar de cual se trata....?, en el siguiente codigo te puede quedar mas clara mi duda:

Function ErroresSistema(ErrorOcurrido: Exception): String;
Begin

if ErrorOcurrido = EDivByZero Then
Begin
......
end

If ErrorOcurrido = ERangeError Then
Begin
......
end

If ErrorOcurrido = EStackOverflow Then
Begin
......
end
.....
.....
end;

La comparacion "ErrorOcurrido = EStackOverflow", no es valida ya que "ErrorOcurrido" es un objeto de tipo exception y "EStackOverflow", es un valor que hace referencia al error ocurrido. ¿existe alguna propiedad del objeto exception que referencie de alguna forma al identificador del error ocurrido y que sea comparable de esta forma "ErrorOcurrido.xxxxx = EStackOverflow", de manera que sean tipos compatibles para la comparacion?....Si existe otra manera de compar tambien podria ser una alternativa...


Cualquier ayuda se agradece de antemano.
Responder Con Cita
  #6  
Antiguo 13-04-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por ejemplo

Código:
if ErrorIcurrido is EDivByZero then
// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:17:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi