Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Puedes usar la opción de defcon1 perfectamente.... pero en lugar de usarlo en un try... except, coloca ese código del except en un ApplicationsEvents.OnException.

Así la misma rutina de gestión de excepciones la tienes centralizada en un único sitio y te vale para todos los errores de la aplicación.

Si no quieres que muestre todo el mensaje cárgate el mensaje original de la excepción y pones el tuyo.... a ver si me explico con código:
en el applications.OnException
Código Delphi [-]
var 
  personal, original:string;
// E:Exception viene definida en los parámetros de este evento.
 personal := EmptyStr;
 if E is EIBInterbaseError then
 begin
  case EIBInterBaseError(E).IBErrorCode of
  $14000019: personal := 'Deadlock producido, pepe';
  $14000888: personal := 'El título no puede estar vacio';
  end;

  MiLog.Add(E.Message); // grabar mensaje original
  E.Message := personal;
  Application.ShowException(E);
end;
Application.ShowException no estoy muy seguro, creo que es la forma correcta, pero no recuerdo si pertenece a "Application" o es una rutina escondida...

También puedes usar en Interbase un prefijo para todas tus excepciones, por ejemplo al definir la excepción lo haces así:
Código SQL [-]
exception "Mi_excepcionIBInicio El usuario no puede estar en blanco  Mi_excepcionIBFin"
exception "Mi_excepcionIBInicio El código debe ser mayor que cero Mi_excepcionIBFin"
Ahora en el applications.OnException buscas la cadena prefijo "Mi_excepcionIBInicio" y sólo copias el texto hasta el sufijo "Mi_excepcionIBFin"

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 17-12-2008 a las 16:35:26.
Responder Con Cita
  #2  
Antiguo 17-12-2008
Galahad Galahad is offline
Miembro
 
Registrado: abr 2007
Posts: 218
Poder: 18
Galahad Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Puedes usar la opción de defcon1 perfectamente.... pero en lugar de usarlo en un try... except, coloca ese código del except en un ApplicationsEvents.OnException.

Así la misma rutina de gestión de excepciones la tienes centralizada en un único sitio y te vale para todos los errores de la aplicación.

ok, gracias, creo que ahora si que lo tengo claro, me pongo a la faena de crear un manejador de errores,,, universal...
gracias a todos...
Responder Con Cita
  #3  
Antiguo 30-12-2008
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

El problema no es del manejador si no de los componentes que estes usando. Lo que hacer es sobreescribir el codigo del componente donde se lansa la exception. Y es si los componentes no dispones de las fuentes podrian crean on procedimiento onexception global ya asignarselo a al aplicacion y hay verificas si le exception es del tipo d einterbase o firebird y arreglas la caeena a tu conveniencia.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mensaje de error: Debugger Exception Notification. cesar_gta86 Varios 1 02-07-2008 17:23:57
Path completo en la red RebeccaGL Redes 9 18-02-2008 20:15:18
Listado completo de tabla teclilla Impresión 3 15-02-2008 22:50:58
el codigo completo ElDioni SQL 2 11-07-2005 17:39:41
Informe Completo Franklim Impresión 5 02-04-2004 13:45:29


La franja horaria es GMT +2. Ahora son las 19:06:10.


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