Exepciones C++

Páginas: 7 (1641 palabras) Publicado: 5 de noviembre de 2012
Manejo de excepciones
Se puede decir que un buen programa es aquel que previene los posibles errores que surgen durante la ejecución del mismo. Es responsabilidad del programador, si es que éste está dispuesto a tomarse la molestia de prever hasta los últimos detalles.

En C++ se les denomina excepciones a los mecanismos para capturar errores. Si uno de esos errores se produce elprograma puede terminar repentinamente.

Por ejemplo puede haber errores en los índices de un arreglo, la división por cero, el incumplimiento de un determinado tipo de dato definido en el programa, cuando un proceso no ha cumplido un límite temporal o no ha terminado correctamente como en el caso de manejo de archivos que se puede perder la información, por peticiones de memoria fallidas.

En C++disponemos de tres palabras reservadas para anticiparnos a las circunstancias imprevistas o casos excepcionales:

try, catch y throw

Para capturar excepciones debemos crear un bloque try-catch , que abarque un posible momento problemático del programa y corregir la situación.

try { codigo; } catch(TipoDeError) { codigo_corrector; }

try
{
...sentencia.1......sentencia.2...
................
...sentencia.n...
}
catch ([argumentos])
{
}
Si alguna de las sentencias que se encuentran dentro del bloque try genera una excepción, ésta se direcciona dentro del bloque catch.
Catch debe de tener un argumento definido, o tres puntos (...) para indicar que se admite cualquier argumento.

Cuando se lanza la excepción, se selecciona el bloque catch cuyoargumento concuerda con el objeto lanzado en la excepción, en orden de aparición
try
{
...
}
catch (int i)
{
...
}
catch (double d)
{
...
}
catch (...){
}

En este caso, si la excepción es un número entero, se tratará primero, si es un número real, se tratará en el segundo bloque; y para todos los otros tipos de dato, en el tercer bloque.
Si no ponemos el bloque general y se produce una excepción que ni es entero ni número real, entonces la excepción no se manejará y posiblemente cause que la ejecución del programa seaborte de forma abrupta.
Es posible forzar una excepción. Esto se logra con la sentencia throw.
try
{
throw -1;
}
catch (int i)
{
cout << "Se genero excepción: " << i << endl;
}
Las excepciones tienen tres fuentes: el lenguaje, lalibrería estándar de C++ y las que están fuera del rango del programa.

Es posible especificar las excepciones que lanzará una función (o método). Esto se hace de la siguiente forma:
void funcion() throw(Tipo1[, Tipo2, ..., TipoN)
{
...
}


Es decir, después de la declaración de la función, poner la cláusulathrow y entre paréntesis los tipos de datos de las posibles excepciones que lanzará la función.
C++ provee una jerarquía de clases para manejar todo esto, existen tres tipos de excepciones. Hay clases para cada una de los tres tipos. Sin embargo, todas éstas heredan de la clase exception (definida en <exception> bajo el espacio de nombres std).
namespace std{
class exception
{
public:
exception();
exception(const string&);
exception(const exception&);
exception& operator= (const exception&);

virtual...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Las Exepciones
  • exepciones
  • exepcion
  • Exepciones
  • Exepcion dominicana
  • Regimenes de exepcion
  • exepciones previas
  • Exepcion en una demanda

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS