Ver Mensaje Individual
  #3  
Antiguo 15-05-2003
chutipascal chutipascal is offline
Miembro
 
Registrado: may 2003
Ubicación: Mallorca
Posts: 194
Reputación: 22
chutipascal Va por buen camino
Cita:
Posteado originalmente por roman
Acabo de leer un mensaje de kinobi en el hilo...........Pero si podemos saber que algo va a fallar de antemano, ¿para qué esperarnos a que se lance la excepción?

En resumen, mi opinión es: inténtalo a menos que de antemano sepas que no se puede.

¿Y ustedes, qué piensan?

// Saludos

Se acerca el día...
Hola.

Hay 2 formas de hacer el control de errores. El modo optimista y el modo defensivo. Cuando comprueba una cosa (como lo del nil) estas acotando o definiendo limites para un particular proceso es el modo defensivo, antes de que pase tomas precauciones. Con el modo optimista dejas que el proceso se ejecute aunque pueda ser que salte pero como lo encierras en un try...except recuperas el error por la excepción a partir del except.
Las ventajas del defensivo son que no tienes que ejecutar el código (que presumiblemente puede fallar) para ver que hay un error, sin embargo su principal desventaja es que tienes que definir constantemente los limites de los datos y de los recursos del sistema y muchos de esos 'limites' se nos escaparán.
La ventaja del optimista es que no tienes que preocuparte de acotar nada simplemente pruebas a ver si funciona y si no funciona... recuperas el error por el except. Por 'legibilidad' el encerrar el proceso en un try...except es más fácil de seguir que encerrarlo dentro de unos IFs. También tiene la gran ventaja de que como no has puesto ningún limite no has acotado algo que mañana funcionara y que hoy no puede funcionar (por ej. si modificas el paso de un tipo de argumento a una dll, una tabla de BD que antes no admitía duplicar tal o tal campo) con la programación defensiva tendrás que modificar gran parte de tu código de la otra manera, nada.
Programar optimista esta ,ás en la onda de hoy en día, tal vez por estos motivos y mil más.
Antes programaba en defensivo pero cada vez estoy usando más try...except (aunque reconozco que me cuesta pensar de esa forma todavía).

Un saludo.
Responder Con Cita