Вы находитесь на странице: 1из 2

Manejo de excepciones

Una excepción es la indicación de un problema que ocurre durante la ejecucuin de un


programa. El nombre “excepción” vienen del hecho de que aunque puede ocurrir un problema
este ocurre con poca frecuencia
Para el manejo de excepciones c++ tiene las 3 palabras reservadas try-catch y throw

Ejemplo 1
Escriba el siguiente programa , ingresando los valores x = 5, y=0
#include <iostream>
using namespace std;

int main() {
int x;
int y;
cout << " ingrese el primer numero"<<endl;
cin >> x;
cout << " ingrese el segundo numero" << endl;
cin >> y;
cout<<"la division se ejecutó con éxito : " << x / y;
system("pause");
return 0;
}

Si ejecuta el programa le aparecerá el siguiente error : Unhandled exception at 0x009B2500 in


expcecionesmary.exe: 0xC0000094: Integer division by zero. Occurred

Implementando la sentencia Try – Catch


#include <iostream>
using namespace std;

int main() {

try // bloque try encierra el codigo que podria lanzar excepciones


{
int x;
int y;
cout << " ingrese el primer numero" << endl;
cin >> x;
cout << " ingrese el primer numero" << endl;
cin >> y;

if (y == 0)
{
throw "el segundo numero es cero"; // expresion throw,lanza la
excepcion
}
else
cout << " Division ejecutada con exito : "<<x/y << endl;
}

// bloque catch atrapa la excepcion lanzada por throw y la maneja.El bloque catch
especifica un parámetro de excepción que representa la excepción que puede manejar

catch (const char* e) {


cout << e << endl;
}

system("pause");
return 0;
}

Por que usamos excepciones: para evitar que nuestro programa deje de funcionar
drásticamente
Si desde un try se lanza una excepción y no existe el mecanismo catch para tratar dicha
excepción el programa se interumpirá abruptamente

Ejemplo 2
El siguiente programa muestra un bucle infinito el cual pide se ingresen sólo números entre 0 al
9, si ocurre una excepción el programa no dejará de ejecutarse
#include <iostream>
using namespace std;

int main() {
bool infinito = true;
while (infinito)
{
try // bloque try encierra el codigo que podria lanzar excepciones
{
int numero;
cout << "ingresa numero entreo 0 y 9 ";
cin >> numero;
if (0 > numero || 9 < numero)
{
throw numero; // sentencia throw que lanza la excepcion
}
}
catch (...) // (...) significa que capturará cualquier tipo de excepcion
{
cout << " Numero invalido " << endl;
}
}
system("pause");
return 0;
}

Вам также может понравиться