Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 26-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por vtdeleon
Segun entendi: si realizamos la division entre zero, el sistema mostrara una excepcion diciendo que no se puede dividir entre 0... (...)
Mostrará un mensaje, no una excepción: la excepción podríamos decir es un estado "interno" del programa que el usuario no verá nunca, porque en realidad no puede verse cómo se ejecuta el programa y en qué estado se encuentra: lo que mostramos al usuario es un mensaje, que, efectivamente, corresponde, de algún modo, a la excepción que se esté tratando, informa de ella, pero podría no mostrarse ningún mensaje al usuario y la excepción seguir ahí...

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:
Empezado por vtdeleon
... por lo que muchos de nosotros (no me escapo de esta:P) nos gusta personalizar esta excepcion con un mensaje o un PLAN B. (...)
Y ya no que nos guste, pero, podemos evitar un estado de "excepción" que pueda echar abajo a nuestro programa o sencilamente, después de probar con un "plan A", si este no va como se espera, probar con otro "plan B", a ver si tenemos algo de más fortuna. Imagina un "plan B" para la excepción de más arriba (EDivByZero) siempre que este fuera posible, quiere decirse que trataríamos primero de llevar a cabo la división ("plan A"), pero, si surgiera algún problema, todavía no nos quedaríamos con los brazos cruzados y trataríamos de dar una solución a esto mediante un "plan B".

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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 07:51:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi