Excepciones en la librería estándar
Ciertos elementos del lenguaje y algunas utilidades de la Librería Estándar pueden lanzan excepciones para señalar condiciones de error. Los objetos lanzadospertenecen a algún miembro de una jerarquía de clases que tiene el siguiente diseño:
exception
logic_error
domain_error
invalid_argument
length_error
out_of_range
runtime_error
range_error
overflow_error
underflow_error
bad_alloc
bad_cast
bad_exception
bad_typeid
Como puede verse, todas ellas derivan de la superclaseexception, definida en la cabecera , que tiene la siguiente interfaz:
class exception {
public:
exception () throw();
exception (const exception&) throw();
exception& operator= (constexception&) throw();
virtual ~exception () throw();
virtual const char* what () const throw();
};
Esta clase tiene cinco métodos públicos, ninguno de los cuales puede lanzar una excepción. El másinteresante es what(), que generalmente devuelve una descripción textual del error causante de la excepción.
[pic] Un logic_error señala una inconsistencia en la lógica interna del programa, o laviolación de cierta precondición en la parte del software cliente (una rutina de usuario). Por ejemplo, el método substr de la clase estándar string, lanza una excepción del tipo out_of_range si seinterroga una subcadena (substring) situado más allá del final de la cadena.
Interfaz:
class logic_error : public exception {
public:
explicit logic_error (const string& what_arg);
};
De estaclase derivan las siguientes:
class domain_error : public logic_error {
public:
explicit domain_error (const string& what_arg);
};
class invalid_argument : public logic_error {
public:
explicit invalid_argument (const string& what_arg);
};
class length_error : public logic_error {
public:
explicit length_error (const string& what_arg);
};
class out_of_range : public...
Regístrate para leer el documento completo.