Ver Mensaje Individual
  #16  
Antiguo 06-05-2006
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Soy de la opinion de utilizar este tipo de instrucciones en contadas coasiones y solo cuando realmente sea necesario, pero no hay que irse al extremo de no usarlo jamas.
La teoria nos dice que no se deben usar, pero la teoria no es mas que eso, realmente casi todos los lenguajes han recuperado el GOTO y se empieza a utilizar precisamente para facilitar las cosas no para liarlas, claro que disfrazada de excepciones. Hasta en php 5 se ha añadido la posibilidad de usar excepciones y esto no son mas que GOTOs disfrazados.
Por ejemplo esto (realmente los "throw exception" deberian estar dentro de las funciones proceso?(), pero complicaria el ejemplo):
Código:
<?php
try {

  $error= proceso1();   
   if($error) throw new Exception('Error'); 
 
 while(lo_que_sea) {
   if(($error=proceso1()) throw new Exception('Error');
 }

 $error= proceso3();
  if($error) throw new Exception('Error'); 

} catch (Exception $e) {
   echo 'Caught exception: ',  $e->getMessage(), "\n";
}
?>
Seria lo mismo que hacer:
Código:
<?php

  $error= proceso1();   
   if($error) goto error; 
 
 while(lo_que_sea) {
   if(($error=proceso1()) goto error;
 }

 $error= proceso3();
  if($error) goto error; 

goto fin;

:error:
   echo 'Error';

:fin

?>
Es mas si lo pensamos bien, podriamos incluso considerar el uso de excepciones como algo todavia mas diabolico que el uso de gotos, ya que los gotos de las excepciones pueden saltar entre funciones, con lo que aparentemente se lia todavia mas el codigo.

Pero la realidad es la contraria, el uso de excepciones facilita enormente el control de errores en el desarrollo de software y su mantenimiento posterior, por esto se ha ido implementado en casi todos los lenguajes.

Saludos
Responder Con Cita