FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
deshablitar las exception
Hola a todos: Como se puede deshablitar las exception. Para que no surjan en runtime. Trabajo con Delphi 7. Gracias.
|
#2
|
||||
|
||||
¿Para qué quieres hacer tal cosa?
Las excepciones son un mecanismo imprescindible para el manejo de... ... excepciones! Si no las manejas las probablidades de que tu aplicación termine desastrosamente son bastante altas. // Saludos |
#3
|
||||
|
||||
Como dice román, no es una práctica para nada recomendable, pero puedes hacerlo manejando tu propio Application.OnException y que no haga nada.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
Solo comentar que la solución comentada por delphi.com.ar te da la posibilidad de manejar vos mismo las excepciones... pero no de deshabilitarlas. De hecho, son parte "intrinseca" de object pascal, y no pueden ser deshabilitadas, pues toda la VCL se basa en ellas para manejar situaciones de error y otros casos "excepcionales".
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Cita:
// Saludos |
#6
|
||||
|
||||
Cita:
Pero seguirán existiendo, no??? Al menos yo interpreto el "deshabilitarlas" como el querer impedir su existencia, o programar al antiguo estilo de Turbo Pascal, donde este genial invento no existía aún. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
De vuelta a la pregunta original del hilo, creo que mas bien la pregunta surge por desconocimiento real de que está ocurriendo.
Febito, muchas de las excepciones son por Access violation read/write de tal o cual direccion de memoria Si es un Read, significa que tu aplicación se ha ido a leer a una parte de la memoria donde no hay variables de tu programa, es decir, puedes estar leyendo una parte de la memoria donde reside algo perteneciente a otro programa o incluso del sistema operativo, y por supuesto tu aplicación se va a volver loco con el valor leido si no tratas la excepcion, o arreglas el código fuente. Si es un Write, entonces es todavia más pelilgroso, ya que estas escribiendo en una zona de memoria donde reside otro programa, por tanto, fallará tu programa y probablemente, el sistema operativo u otra aplicación que tengas abierta. Lo que sí podrías hacer es un log con las excepciones que se producen, de esta forma el usuario final del programa no vé la pantalla de acces violation, pero de vez en cuando, mirarías ese log y verias donde se producen errores para corregirlos, CORRIGELOS !!! no las dejes ahí. Existen multitud de componentes para este fin, yo uso las LMDTOOLS, en el que se puede deshabilitar el mostrar las excepciones, y derivarlo a un log directamente, el resultado es algo parecido a esto: Código:
LogFile started: 18/05/2004 15:38:12 Application : Project1 Path/ExeName : E:\Delphi\Proyectos\Project1.exe *************************************** Entries: 00001: [15:38:12] [18/05/2004]TPanel (Name: pnlImprimir): TblAlbaranes: Dataset not in edit or insert mode, Address: 004E7650 El código en delphi es este:
Intuyo que esto es lo que querias preguntar, no febito?? |
#8
|
|||
|
|||
Hola Lepe he probado el código que has mencionado en tu respuesta
he insertado el control LMDApplicationCtrl y he insertado esta función es su evento OnException. Hasta este momento todo funcionaba correstamente pero al intentar introducir la primera línea de código
Me dice lo siguiente...: Unable to invoke Code Completion due to errors in source code... ¿Que estoy haciendo mal?
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net |
#9
|
||||
|
||||
Tú ?? nada. Yo, pues no haber dicho que tienes que añadir en los uses la Unit lmdclass
Cita:
SAludos Última edición por Lepe fecha: 19-05-2004 a las 11:28:32. |
#10
|
||||
|
||||
Cita:
// Saludos |
#11
|
||||
|
||||
Pues ese mensaje siempre me sale en el ide de delphi en un showmessage desde que instalé las Gexpert. Siempre creia que el compilador daba el "undeclared idenfier" para ese caso.
Gracias por la aclaración Román |
|
|
|