Ver Mensaje Individual
  #2  
Antiguo 22-06-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.112
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Puedes estar atento al evento OnExcepcion de Application.

Podrías declarar un procedimiento de este modo:

Código Delphi [-]
  procedure ApplicationException(Sender: TObject; E: Exception);

Y, por ejemplo, en el evento FormCreate de tu aplicación asignar el procedimiento al evento correspondiente, algo así:

Código Delphi [-]
  procedure TForm1.FormCreate(Sender: TObject);
  begin
    Application.OnException := ApplicationException;
  end;

La implementación del procedimiento ApplicationException sería algo así:

Código Delphi [-]
  procedure TForm1.ApplicationException(Sender: TObject; E: Exception);
  begin
    ShowMessage('Excepción ' + E.Message);
  end;

Respecto de lo que dices de capturar la mayor cantidad de excepciones, no sé muy bien a qué te refieres, pero, ten en cuenta que las excepciones heredan de la clase Exception, o sea, sitúate en un código parecido a este:

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
   try
     Caption := IntToStr( 12 div 0 );
   except
     on E: Exception do ShowMessage(E.Message);
     on E: EDivByZero do ShowMessage(E.Message);
   end;
 end;

Aunque la excepción que corresponde aquí es EDivByZero, nunca se llegaría a mostrar "su mensaje", puesto que antes precisamos que se capturen excepciones del tipo Exception y este es el más alto en la jerarquía de excepciones, si está bien dicho así.

Lo suyo, pues, sería situar la línea de la excepción EDivByZero antes que la de la de Exception. Por otro lado, si tratas de probar el código anterior, verás que ni siquiera compilará: Delphi reconoce la división por cero y no deja continuar si esto no se arregla antes.

En el libro La cara oculta de Delphi 4 de Ian Marteens, el cual puede conseguirse gratuitamente desde su página Web, se tratan las excepciones y la manera de trabajar con estas.

En este propio Foro también se ha tratado en diferentes ocasiones el tema de las excepciones y el modo de trabajar con ellas: solamente echa un vistazo con ayuda del buscador de los Foros.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 22-06-2005 a las 19:46:43. Razón: (ampliación del texto)
Responder Con Cita