Diferencia entre revisiones de «Programación en C++/Excepciones»
Contenido eliminado Contenido añadido
Línea 2:
[mailto:oscarpalacios1@yahoo.com.mx Oscar E. Palacios]
<div style="background:#fffeee; text-align:justify; padding:40px">
Línea 30:
}</source>
== Excepciones genéricas ==
Como ya hemos mencionado, los
<pre>catch(...) { bloque de imstrucciones }</pre>
<source lang=cpp>
Línea 50 ⟶ 51:
}</source>
Si usted está usando una clase escrita por terceras personas o de las que se incluyen con el compilador y desea utilizar el mecanismo <b>try</b>, deberá conocer el tipo de excepción lanzado por dicha clase para así poder escribir el <b>catch</b> correspondiente para el tratamiento de dicho error. Por ejemplo, la función <b>at()</b> de la clase <b>string</b> ( que será estudiada más adelante ) lanza una excepción cuando se trata de leer o escribir un componente fuera de rango. En tales casos usted puede proceder a capturar el error como se muestra en el siguiente programa.<br>
<source lang=cpp>
// Compilado y probado exitosamente con Dev-C++
// Demostración: excepción de la clase string
#include <iostream>
#include <string>
int main()
{
}
}
}</source>
En el programa anterior el método <b>at</> de la clase <b>string</b> lanzará ( trow-up ) un error de excepción, ya que la instrucción <b>s.at(100)</b> trata de acceder a un elemento fuera de los limites del objeto ( s ).
== La clase exception ==
▲ try {
▲ cout << s.at(100) << endl;
▲ catch(exception& e) {
▲ cout << e.what() << endl;
▲ cin.get();
▲ return 0;
<p class="parrafo">Tal como se mostró en el programa anterior los errorres generados por las librerías
estándar de C++ pueden ser capturados por un catch que tome un parámetro tipo <b>exception</b>. Realmente,
|