Ver Mensaje Individual
  #1  
Antiguo 14-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Excepciones: uso y abuso de la instrucción try/except

Hola,

He dudado entre publicar este Hilo o no y es que lo que diré es, desde luego, interesante para mí, pero, no sé hasta qué punto podrá o no importarle a alguien más.

Brevemente. Hasta anoche no supe bien el uso de la instrucción try/except no ya en Delphi, pero, supongo, en cualquier lenguaje que haga uso de esta instrucción o alguna similar.

Algo he leído (reconozco que no lo que debiera) sobre el tema, empero, hasta anoche, tal como digo, no vi la luz, como suele decirse. Me alumbró Ian Marteens en un artículo suyo titulado Excepciones en Freya.

Resulta que, como el autor menciona en el segundo o tercer párrafo del artículo susomentado:

Cita:
Empezado por Marteens
La instrucción peor utilizada de estas tres [raise, try/finally, try/except], suele ser try/except. En una aplicación, menos del 10% de los try debe ser un try/except. La explicación está en que muy pocas veces tenemos un plan B para cuando nos falla el primer intento de resolver un contrato.
Pues bien, reconozco que he utilizado mal la instrucción de marras en no pocas ocasiones, a lo que se ve, pero que me prometo desde estas líneas no volver a hacerlo nunca más de este modo.

Cita:
Empezado por Marteens
Código Delphi [-]
 try
   ...
 except
   ...
   raise;
 end;
Es decir: utilizamos realmente la cláusula except para llevar el programa a un estado estable... y repetir la excepción original, de modo que siga su propagación natural.
Probablemente me lo habían indicado con otras palabras; quizás es que no presté la suficiente atención cuando leí sobre el tema; el caso es que por fin alguien ha conseguido meterme en la cabeza "el concepto", que diría un pedante.

Pues nada. Que les recomiendo el artículo en cuestión y que espero que estos párrafos no sean del todo inútiles para quien los lea. Ah, casi se me olvidan: gracias a Ian Marteens por este y otros textos suyos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita