Ultimamente uno de los temas que mas me preocupan, y que creo que es dificil de de hacer bien, es el reporte de errores, y como en C++ el mecanismo estandar de hacerlo son las excepciones, pues esa preocupaci'on se traslada al correcto uso de las excepciones.
La ventaja de las excepciones sobre otros mecanismos es que es un mecanismo consistente y fiable. Consistente porque los errores se reportan de la misma manera y fiable porque todos los errores son detectados, no se deja esa responsabilidad al programador. El mecanismo en si mismo es capaz de atrapar los errores no tratados.
Visto esto, esta claro que la soluci'on m'as simple es lanzar excepciones con todos los errores. Pero en la practica, sobre todo cuando realizas tratamiento de ellas, no consigues realizar una de las cosas que intentas evitar, la limpieza del codigo mediante la separacion de la logica del tratamiento de los errores; sino que incluso lo empeoras, ya que los bloques try-catch hacen el codigo mas oscuro que los tradicionales if's.
Jack W. Reeves aborda este tema en The (B)Leading Edge: Revisiting Exception Handling.
Al final del articulo el autor da una serie de recomendaciones concluyendo que lo mejor es no especificar las excepciones.
Exactamente esa es mi opini'on. Aunque yo recomiendo el incluir la especificaci'on, pero comentada.
Ya para acabar, solo comentar que Jack W. Reeves, siene su site, The Bleading Edge.
No hay comentarios:
Publicar un comentario