13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 16 — #54<br />

✐<br />

Capítulo 1. Introducción a los Objetos<br />

l<strong>en</strong>guaje <strong>C++</strong> por lo que no se incluye, aunque exist<strong>en</strong> recolectores de basura para<br />

<strong>C++</strong>, creados por terceros.<br />

1.8. Gestión de excepciones: tratami<strong>en</strong>to de errores<br />

Desde los inicios de los l<strong>en</strong>guajes de programación, la gestión de errores ha sido<br />

uno de los asuntos más difíciles. Es tan complicado diseñar un bu<strong>en</strong> esquema<br />

de gestión de errores, que muchos l<strong>en</strong>guajes simplem<strong>en</strong>te lo ignoran, delegando el<br />

problema <strong>en</strong> los diseñadores de la librería, que lo resuelv<strong>en</strong> a medias, de forma que<br />

puede funcionar <strong>en</strong> muchas situaciones, pero se pued<strong>en</strong> eludir, normalm<strong>en</strong>te ignorándolos.<br />

El problema más importante de la mayoría de los esquemas de gestión de<br />

errores es que dep<strong>en</strong>d<strong>en</strong> de que el programador se preocupe <strong>en</strong> seguir un conv<strong>en</strong>io<br />

que no está forzado por el l<strong>en</strong>guaje. Si los programadores no se preocupan, cosa que<br />

ocurre cuando se ti<strong>en</strong>e prisa, esos esquemas se olvidan fácilm<strong>en</strong>te.<br />

La gestión de excepciones «conecta» la gestión de errores directam<strong>en</strong>te <strong>en</strong> el l<strong>en</strong>guaje<br />

de programación y a veces incluso <strong>en</strong> el sistema operativo. Una excepción es un<br />

objeto que se «lanza» desde el lugar del error y puede ser «capturado» por un manejador<br />

de excepción apropiado diseñado para manipular este tipo particular de error.<br />

Es como si la gestión de errores fuera una ruta de ejecución difer<strong>en</strong>te y paralela que<br />

se puede tomar cuando las cosas van mal. Y como usa un camino separado de ejecución,<br />

no necesita interferir con el código ejecutado normalm<strong>en</strong>te. Eso hace que el<br />

código sea más simple de escribir ya que no se fuerza al programador a comprobar<br />

los errores constantem<strong>en</strong>te. Además, una excepción no es lo mismo que un valor de<br />

error devuelto por una función o una bandera fijada por una función para indicar<br />

una condición de error, que se puede ignorar. Una excepción no se puede ignorar, de<br />

modo que está garantizado que habrá que tratarla <strong>en</strong> algún mom<strong>en</strong>to. Finalm<strong>en</strong>te,<br />

las excepciones proporcionan una forma para recuperar una situación consist<strong>en</strong>te.<br />

En lugar de salir simplem<strong>en</strong>te del programa, a m<strong>en</strong>udo es posible arreglar las cosas<br />

y restaurar la ejecución, lo que produce sistemas más robustos.<br />

Merece la p<strong>en</strong>a t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta que la gestión de excepciones no es una característica<br />

ori<strong>en</strong>tada a objetos, aunque <strong>en</strong> l<strong>en</strong>guajes ori<strong>en</strong>tados a objetos las excepciones<br />

normalm<strong>en</strong>te se repres<strong>en</strong>tan con objetos. La gestión de excepciones existía antes que<br />

los l<strong>en</strong>guajes ori<strong>en</strong>tados a objetos.<br />

En este Volum<strong>en</strong> se usa y explica la gestión de excepciones sólo por <strong>en</strong>cima; el<br />

Volúm<strong>en</strong> 2 (disponible <strong>en</strong> www.BruceEckel.com) cubre con más detalle la gestión de<br />

excepciones.<br />

1.9. Análisis y diseño<br />

El paradigma ori<strong>en</strong>tado a objetos es una nueva forma de p<strong>en</strong>sar sobre programación<br />

y mucha g<strong>en</strong>te ti<strong>en</strong>e problemas la primera vez que escucha cómo se aborda<br />

un proyecto POO. Una vez que se sabe que, supuestam<strong>en</strong>te, todo es un objeto, y cómo<br />

apr<strong>en</strong>der a p<strong>en</strong>sar al estilo ori<strong>en</strong>tado a objetos, puede empezar a crear «bu<strong>en</strong>os»<br />

diseños que aprovech<strong>en</strong> las v<strong>en</strong>tajas de todos los b<strong>en</strong>eficios que ofrece la POO.<br />

Un método (llamado a m<strong>en</strong>udo metodología) es un conjunto de procesos y heurísticas<br />

usados para tratar la complejidad de un problema de programación. Desde<br />

el comi<strong>en</strong>zo de la programación ori<strong>en</strong>tada a objetos se han formulado muchos métodos.<br />

Esta sección le dará una idea de cuál es el objetivo que se int<strong>en</strong>ta conseguir<br />

16<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!