Ver Mensaje Individual
  #6  
Antiguo 15-07-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.917
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Para medio aclarar (que con plan A y plan B ya me dan ganas del plan C ):

El asunto con try..except es muy simple, realmente ...

Uno solo debe usar except si:

1- Es un codigo transaccional: ie. Hay una serie de tareas, un commit y en caso de falla, un rollback.

2- Cuando la excepcion se usa para CORREGIR el problema. Ej, estamos haciendo una conexion a un lugar remoto, y nos salta un error. Supongamos un timeout, y el programa es un cliente FTP que aparte de timeout tiene reintentos... Si la conexion falla se puede corregir (o sea volver a conectar) hasta N reintentos

Pero lo que nunca se debe olvidar (porque las dos reglas anteriores no son absolutas, y se puede resolver la segunda no con excepciones sino con funciones que devuelvan el resultado de la operacion) es que:

JAMAS SE DEBE ESCONDER EL ERROR. NUNCA.

Y eso es todo lo que hay que saber. Ya sea que se de "rollback" o que se "corriga" se debe NOTIFICAR que hubo error, ya sea por medio de un log, un mensaje (no intrusivo, en el caso de la correccione: e.j: El cliente FTP simplemente pone un mensaje que dice: La conexion falla, reintentando en 30 segundos...), un mesagebox o lo que sea. Si se esconde el error como:

try
AbrirArchivo;
except
result := false;

Nos va a dar un total dolor de cabeza el luego adivinar que salio mal.

Como siempre he dicho: Si el programa saca error, es que esta bueno (Miedo al que nunca lo saca!)
__________________
El malabarista.
Responder Con Cita