Ver Mensaje Individual
  #43  
Antiguo 17-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Cita:
Empezado por Sick boy Ver Mensaje
He utilizado un bloque try..except porque creo que será más rapido que un if..then..else. Ya me he equivocado un monton de veces en este hilo, puede que me equivoque en esto tambien.
Perdona, equivocar, no te has equivocado, has utilizado una solución, que si bien podría no seguir algunos estándares de programación, funciona a la perfección.

En realidad las excepciones son costosas, ten en cuenta que ha de crearse un nuevo objeto en memoria, tracear la pila de llamadas y volver hacia atrás buscando los try ... except en toda la pila de llamadas y, si no encuentra ninguna más, entonces mostrar el mensaje al usuario.

El dicho viene al caso: "más vale prevenir que curar". Si puedes esquivar la excepción, mejor que mejor. Un "if ...else" sólo se traduce en una comparación y salto en ensamblador. La creación de la excepción, como ya he dicho, es algo más costoso que eso.

En tu favor, podemos decir que tu código funcionará perfectamente e incluso más rápido que ese "if ... else" porque ahorras esas dos instrucciones ensamblador. Sólo en el caso de superar el máximo número del tipo Integer, será un poco más lento tu código. Usando el "if...else" siempre tendrás la misma "velocidad de ejecución" (se supere el máximo o no).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita