Diferencia entre revisiones de «Programación en C++/Excepciones»

Contenido eliminado Contenido añadido
m Eliminado de nombres de autores.
Añadido contenido
Línea 3:
<td>[[Programación en C++/Librería Estándar de Plantillas|Librería Estándar de Plantillas]] &#8594;</td>
</tr></table>
 
= Excepciones. Motivación histórica =
 
<div style="background:#fffeee; text-align:justify; padding:40px">
Primeramente, antes de entrar en el tema de las excepciones en programación, se ha de matizar en el concepto de qué son las excepciones, vistas desde un punto de vista fuera y dentro del mundo de la programación.
 
En el lenguaje humano, una excepción es un elemento excluyente de una regla, y de forma convencional se ha extendido esta definición.
En el lenguaje máquina, una excepción se trata, de forma general, de algo que no se espera que ocurra, pero que puede ocurrir, similar al tratamiento de errores, pero de los errores en tiempo de ejecución.
 
A veces estas excepciones, para una máquina, no son casos que no deberían estar contemplados, tal y como un programador se lo asigna, sino que pueden ser indicadores para comprobar que realmente todo está marchando bien o no.
 
En los programas de ordenador hechos en C existió durante mucho tiempo la costumbre de usar el comando "goto" (también implementada en C++), pero éste se ha ido eliminando progresivamente de casi todos y cada uno de los códigos y programas que han ido surgiendo. El significado de la función 'goto' no forma parte del libro actual, pero se pueden buscar referencias por internet donde se especifique con más detalle qué es.
 
Como una de las formas de control de errores más usuales era con goto, se usaron otras variantes, como las aserciones de código (assertions, en inglés) o, con la llegada de la programación orientada a objetos, de los comandos try, catch y throw.</div>
 
= Conformación de los bloques try y catch =
<div style="background:#fffeee; text-align:justify; padding:40px">
Por norma general, los comandos try y catch conforman bloques de código.
 
Cada uno de estos bloques se recomienda, aunque sea de una única línea, envolverlos en llaves, como muestra el siguiente ejemplo:
 
<source lang=cpp style="font-size:14px;">
// ...código previo...
try
{
// bloque de código a comprobar
}
catch( tipo 'excepción' ) // Ha ocurrido un suceso en el try que se ha terminado la ejecución del bloque y catch recoge y analiza
{
// bloque de código que analiza lo que ha lanzado el try
}
// ...código posterior...
</source>
 
Generalmente entre el try y el catch no se suele insertar código, pero se insta al lector a que lo intente con su compilador habitual y que compruebe si hay errores o no de compilación.
</div>
 
= Control de excepciones =
<div style="background:#fffeee; text-align:justify; padding:40px">