5. Excepciones

5.5. Fuera de rango

Veamos un ejemplo, donde tratamos de acceder a un caracter de un string que no existe, el string tiene 5 caracteres y quiero mostrar el decimo.

En este ejemplo usamos la librería string.

Los errores generados por las librerías estándar de C++ pueden ser capturados por un catch ( ver que no hay throw visible)  que tome un parámetro tipo exception. 

Realmente, exception es una clase base de donde usted puede derivar las suyas y sobrescribir los métodos para el tratamiento de excepciones. En particular este ejemplo trata de acceder a algo fuera de rango, por lo que causa un error de rango.

Aqui podemos acceder a la documentación de referencia: https://en.cppreference.com/w/cpp/error/range_error

La clase exception está incluida en la libreria estandar exception y su estructura es la siguiente:

class exception {
public:
    exception() throw() { }
    virtual ~exception() throw();
    virtual const char* what() const throw();
};
El método what() en la clase exception, es el encargado de generar el mensaje que trata de explicar la naturaleza del error ocurrido.

Si en nuestro ejemplo se nos ocurre mostrar un caracter de txt que esté más allá que la 4 posición, va a dispara una exception.