Diferencia entre revisiones de «Programación en C++/Excepciones»
Contenido eliminado Contenido añadido
Añadido contenido |
|||
Línea 42:
= Control de excepciones =
<div style="background:#fffeee; text-align:justify; padding:40px">
Una excepción es un error que puede ocurrir debido a una mala entrada por parte del usuario, un mal funcionamiento en el hardware, un argumento inválido para un cálculo matemático, etc.
La lógica del mecanismo mencionado consiste en: #Dentro de un bloque <b>try</b> se pretende evaluar una o más expresiones y si dentro de dicho bloque se produce un
#Puesto que desde un bloque <b>try</b> pueden ser lanzados diferentes tipos de errores de excepción es que puede haber más de un <b>catch</b> para capturar a cada uno de los mismos.<br><br>
#Si desde un <b>try</b> se lanza una excepción y no existe el mecanismo <b>catch</b> para tratar dicha excepción el programa se '''interumpirá''' abruptamente despues de haber pasado por todos los catchs que se hayan definido y de no haber encontrado el adecuado.<br><br>
#Los
En el programa que se listará en seguida se muestra un ejemplo de como lanzar una excepción de tipo <b>int</b> dentro del bloque <b>try</b>, y como capturar el error por medio de <b>catch</b>.
<br>'''Ejemplo'''<br>
<source lang=cpp>▼
<source lang=cpp style="font-size:14px;">
// Demostración
#include <iostream>
// Función: main
// Recibe: void
int main()▼
// Devuelve: int
{▼
// En la función principal se tratarán los comandos try, throw y catch
▲ int main(void)
▲ {
try // Se intenta hacer el siguiente código
{
// Aquí puede ir más
throw 125; //...aunque directamente en este caso se lanza una excepción.
}
catch(int) // Se captura con un catch de enteros (podría usarse long o char, por ejemplo)
return 0;▼
{
std::cout << "Ha surgido una excepción de tipo entero" << std::endl; // y se muestra por pantalla
}
std::cin.get(); // Y el programa finaliza.
}
== Excepciones genéricas ==
Como ya
<source lang=cpp>
// Demostración: try, throw y catch
|