![]() |
![]() |
| Paypal | 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
|
||||
|
||||
|
Saludos
Dec Gracias, Me quedo mas claro que el Aire(Oxigeno) Segun entendi: si realizamos la division entre zero, el sistema mostrara una excepcion diciendo que no se puede dividir entre 0...blabla, por lo que muchos de nosotros (no me escapo de esta:P) nos gusta personalizar esta excepcion con un mensaje o un PLAN B. Al Añadir Raise muestra el mensaje personalizado y tambien el del sistema. ![]() Espero que esto halla sido asi. Hice unas pruebas con el codigo ofrecido por Dec y prueba lo que escribo
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#2
|
||||
|
||||
|
Hola,
Cita:
Bueno. Cuando se produce una excepción dentro de una rutina "A" y en esta no se da un tratamiento a dicha excepción (no hay un bloque "try .. except" en ella) la excepción se "pasa" a la rutina que llamó a la rutina "A". Es una cadena: que llegará a la primera rutina de todas, de la clase "Application", si no estoy equivocado (por favor, háganmelo saber si es así) la cual tratará la excepción, bien mostrando un mensaje, bien acabando con la ejecución del programa si no es posible continuar con su ejecución "normalmente". Esto creo que tiene que ver con los dos posibles estados que puede haber en un programa dado: el estado "normal" y el estado de "excepción". En un estado de "excepción" alguien (alguna rutina) habrá de encargarse de dicha excepción de todas, todas. Así se garantiza que una determinada excepción sea tratada incluso si nosotros no lo hacemos. Cita:
Dado que se descubre que la excepción es la que es, y que dividir por cero no tiene mucho sentido, podríamos incrementar la variable "con valor 0" de tal modo que la división fuera posible, con lo que conseguiríamos ofrecer un resultado coherente y que nuestro programa siguiera funcionando, ya con este otro resultado y fuera del estado de excepción, informando o no al usuario según lo consideremos menester. De todas maneras vtdeleon es probable que mis conceptos no estén del todo claros y así no los pueda transmitir correcta ni acertadamente, por lo que te pido tomes lo que digo con pinzas y no dejes de informarte por otros medios respecto de lo que nos ocupa. Este es un buen lugar, puesto que se pueden cruzar ideas, opiniones, teorías, en fin, para bien de todos nosotros, para aprender, en definitiva. |
|
#3
|
||||
|
||||
|
Saludos
De todos modos Gracias Dec. Soy pesimo conceptualizando y expresando algunas ideas pero me queda claro lo que me has dicho:P Grax
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#4
|
||||
|
||||
|
por eso dije "en este código en específico" donde las siguientes dos instrucciones:
showmessage('Clase: 'E.ClassName+' - Mensaje:'+E.Message); raise; //¿necesario? sirven para prácticamente lo mismo. de hecho, realmente creo que una secuencia no debería usarse de esa manera. Para evitar esto, estan las clases de error (EDivByZero, EDBEngineError, EConvertError, etc, etc, etc). En este caso en específico la propuse para conocer la clase de error que marca. Esto solo que sea en tiempo de ejecución, ya que si es en tiempo de diseño habría que hacer otra cosa. En fin, yo sigo esperando a que Toro2186 no cuente que ha pasado con su problema.
__________________
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|