FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
se pueden desactivar en algún lado los mensajes de error?
pues eso, uso un navegador por pestañas, y es un poco lio revisar todo el código, y me costará un poco saber donde tengo el error,
el caso es que si abro una pestaña y me voy a la primera y la cierro me sale el error: "list index of bounds (-1)" El codigo lo tengo preparado para que no ocurra, pero en algunos casos no se porque me sale. La cosa es, mientras le encuentro una solución adecuada existe algun modo de forzar para evitar que salgan mensajes de error como este "list index of bounds (-1)" aunque se produzcan, ya que el error sale pero al aceptarlo funciona todo correctamente. gracias |
#2
|
||||
|
||||
Personalmente creo que no es buena idea enmascarar los errores para que no aparezcan, ni te lo recomendaría, porque al final "siempre" trae más problemas.
De todas formas, siempre puedes capturar las excepciones a nivel global (ya hemos hablado antes en los foros del tema), pero como digo no creo que sea una buena práctica ni una buena solución. Revisa el Objeto TApplication y OnException y HandleException de este objeto. ¿No te será más fácil, activar las exceptiones en diseño y ver dónde falla el código?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Muchas gracias, lo he solucionado de este modo, no se si esto se puede simplificar de algún modo sin poner tanto código:
lo que he hecho es coger este ejemplo y dejar el procedimiento MyExceptionHandler en blanco para que no haga nada. http://www.chami.com/tips/delphi/011497D.html No se si hay algun modo de hacer lo mismo más simple. Pero vamos lo importante es que me funciona como esperaba. Soy consciente de que no es nada recomendable hacer esto, pero en mi caso lo considero una excepción, vamos que se lo que me hago. |
#4
|
||||
|
||||
¿Te parece tanto código?... me sumo a la sugerencia de Neftali, es un error de principiantes pensar que es malo mostrar los mensajes de error, luego nos damos cuenta lo importantes que son para poder depurarlos. Si tienes errores, tienes que preocuparte por solucionarlos, no por taparlos, salvo que estos sean manejados correctamente.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
||||
|
||||
Cita:
Se supone que cuando asigno un Procedure(MyExceptionHandler en este caso) al evento OnException del objeto Application tal como lo has hecho, al ocurrir una excepción deberia ejecutarse el mismo, pero como vemos, eso no ocurre si hemos capturado alguna excepcion en alguna parte., lo que significa que lo que has hecho no es muy seguro que digamos. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#6
|
||||
|
||||
Creo que así vamos mal...
Tal vez no has entendido lo que hace ese procedimiento. Una prueba: (1) Comenta la línea del OnCreate. (2) Pon dos botones con códigos como estos: (3) Ejecuta y luego haz lo mismo descomentando la línea.
El problema es que con lo que has hecho DESAPARECEN TODAS las excepciones de tu programa. Lo lógico (dentro de la poca lógica que tiene esto) sería capturar sólo la excepción que necesitas. Y yo añadiría que ya que la capturas, al menos guardarla en algun sitio (log, txt,...). No se si me explico.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
Hola,
el error list index out of bounds te sale debido a que en alguna lista estas intentando acceder a algun elemento que no existe (por encima del count), o bien si es una lista de objetos, a algun objeto que has eliminado de la lista. Lo mejor seria que nos pusieras el codigo para saber por donde te falla. Saludos. |
#8
|
|||
|
|||
ya dije que solo lo queria para usarlo mientras le encuentro solución, que no creais que es tan facil, no pongo el código ya que es muy largo y un poco lioso de explicar, y dependo no solo de mi código si no del código base y del componente base que he cogido y que tampoco lo controlo totalmente. Es un programa para uso personal y se lo que debe de hacer, si me sale un mensaje de error que me es molesto pero no afecta para nada al funcionamiento del programa, si en principio lo puedo evitar aunque sea de este modo tan chapucero pues eso es lo que hay.
la base del programa es el ejemplo es el 04 - New_Window_Tabs_Demo_2 del componente de Bsalsa EmbeddedWB pero el ejemplo es muy básico y he añadido tantas cosas..... el hecho de manejar los tabs y webbrowsers dinámicamente es lo que tiene. El programa funciona perfectamente con webs normales, el problema es cuando se abren en nuevas pestañas enlaces que estan en javascript y demas cosas que no he probado, entonces es cuando empiezan los problemas que no puedo controlar ya que quizas son cosas del propio componente TEmbeddedWB que no estan muy claras. ¿como debería de hacer para ocultar solo el "List index of bounds (-1)" que me da el pagecontrol y no afecte al resto de excepciones? Última edición por cocute fecha: 04-02-2010 a las 22:54:31. |
#9
|
|||
|
|||
al final después de darle vueltas a la cabeza en la cama he localizado y solucionado el error, así que ya no me hace falta esto,
de todos modos seguro que puede venir bien en alguna ocasión que nos encontremos que nuestro programa nos de mensajes de error que no podamos controlar y que no interfieran en el funcionamiento del programa, está claro que anulando el error específico no todos como habia hecho yo. |
#10
|
||||
|
||||
La verdad que no sé donde está el "lío".
Para esos tipos de errores suelo activar Tools -> debugger Options -> Language Exception -> Stop on delphi Exception. Así el IDE se para antes de lanzar la excepción, ves el call stack y miras tus funciones y las variables... seguro que está por ahí, pones puntos de ruptura y listo...así de fácil
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
|||
|
|||
Hola,
Yo creo que si es buena idea usar el capturador general de excepciones. Justamente ahora estaba buscando información sobre este, porqué sabía que tenía que existir, pero no sabía donde. Mi intención es hacer una ventanica como la de windows cuando falla el programa (Se ha producido la excepción XXXX, quiere enviar un informe de errores? Junto al stack trace, configuración, etc). Creo que para la versión definitiva de un producto es una buena idea, y hasta para cuando se está debugando y el IDE sólo nos avisa de que hay una excepción (pero no donde ni porqué). Bueno, esto de debugando podría ser que tuviese alguna opción desactivada o así, pero siempre me ocurre lo mismo... Por otra parte, usar un capturador global de excepciones para esconder que el programa tiene errores, en mi opinión es una gran chapuza. Y sobretodo si se puede reproducir el problema facilmente (como era el caso de cocute). Me alegro que haya encontrado el error, y espero que desactive el evento este... Saludos, Marc |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
quitar icono un lado del reloj, sin desactivar aplicacion ejecutandose | sakuragi | Windows | 7 | 16-01-2008 17:27:49 |
PHP error al conectar Firebird (y en el PC de al lado va perfecto) | papulo | PHP | 3 | 27-04-2007 15:30:42 |
Problemas con los mensajes de error del IDE | urush30 | Varios | 2 | 03-01-2007 16:54:13 |
Mensajes de error | erick_jesus | Conexión con bases de datos | 1 | 31-05-2006 17:53:47 |
Alguien sabe de algun Chat(Componente) que no se cuelgue al recibir mensajes???? | AGAG4 | Varios | 2 | 15-12-2004 15:55:47 |
|