excepción de los dos gramática básica C ++

2. La sintaxis básica de manejo de excepciones

El siguiente es un ejemplo de un código básico, lo que indica  un saque de banda, el try , capturas uso básico, la  captura  coincide con el tipo de forma automática:

. 1 #include <la iostream>
 2 #include < cadena >
 3.  
4.  El uso de  espacio de nombres STD;
 5.  
6.  Int test_1 ( int NUM)
 7.  {
 8.      IF (NUM =! 0 )
 9.      {
 10          de banda - 1. ;                                 // lanza una tipo int excepción, si es mayor de 30 Hechos 1, a continuación, la excepción será lanzada intento a la línea 36 
. 11      }
 12 es      la otra cosa {
 13 es          de banda  nueva nueva  cadena ( " tiros cadena de excepción ");          // lanzar una cadena excepción, si más de 30 Actos 0, entonces la cadena lanzará una excepción, la captura 42 coincidirá con la línea 
14      }
 15  
16      de retorno  0 ;
 . 17  }
 18 es  
. 19  int test_2 ( int NUM )                                 // función anidación 
20 es  {
 21 es      test_1 (NUM);
 22 es      el retorno  0 ;
 23 es  }
 24  
25  int main ()
 26 es  {
 27      int RET = 0 ;
 28      try                                                   // el valor de retorno del método será por debajo de la try la captura captura 
29     {
 30          RET = test_2 ( 1 );                                  // pasar por encima de 1, se captura de banda test_1 -1, 41 saltará directamente a la línea. 
31 es      }
 32      la captura ( int error) {                                   // valor capturado pasado a la variable de error 
33 es          el printf ( " anormal de D% \ n-! " , Error);
 34 es      }
 35      la captura ( Cadena * error)
 36      {
 37 [          el printf ( " captura de cadena excepción:% S " , error-> el c_str ());      //Si la línea 30 se hace pasar en el pasado excepción 0, puede ser lanzado para un tipo adecuado de cadena 
38 es          Delete error;
 39      }
 40      la captura (...) {                                         // si no tipo adecuado en este documento entrará en un comodín, Si esta línea no ha terminado con intenta pasar un compilador de punto flotante no se desprenderá. 
41 es          el printf ( " la captura ... \ n " );
 42 es      }
 43 es  
44 es      el retorno  0 ;
 45 }

Aquí están diciendo acerca de la situación tiros interceptado, el mismo código de seguridad:

Si test_2 interceptado una excepción en test_1, entonces la llamada a la función principal no obtendrá una excepción, a menos que se lanza de nuevo en test_2 2 (tales como 29 líneas).

. 1 #include <la iostream>
 2 #include < cadena >
 3.  
4.  El uso de  espacio de nombres STD;
 5.  
6.  Int test_1 ( int NUM)
 7.  {
 8.      IF (NUM =! 0 )
 9.      {
 10          de banda - 1. ;                                   // lanza una tipo int anormalidad, el retorno a la línea 20 
11.      } else {
 12 es          de banda  nueva nueva  cadena ( " lanza una cadena de excepción " );
 13     }
 14  
15      de retorno  0 ;
 16  }
 . 17  
18 es  int test_2 ( int NUM)
 19.  {
 20 es      try                                             // Si esta excepción se detecta, la primera fila 38 tratará de excepciones de captura no test_1 
21 es      {
 22 es          test_1 (NUM);
 23 es      }
 24 de      la captura (...) {
 25          printf ( " excepción test_2 se lanza " );
 26 es          de banda  de 0,01 ;
 27      }
 28  
29      / * de banda * / 
30      //Aquí si tiramos, 38 serán recibidos anormalidad línea de nuevo test_1 
31 es  
32      de retorno  0 ;
 33 es  }
 34 es  
35  int main ()
 36  {
 37 [      int RET = 0 ;
 38 es      el try 
39      {
 40          RET test_2 = ( 1. );                                     // pase 1 en el pasado, serán arrojados test_1 -1 en un saque de banda 
41 es      }
 42 es      la captura ( int error) {
 43 es          el printf ( " anormal de D% \ n-! " , error);        
 44 es      }
45      la captura ( Cadena * error) 
 46 es      {                        
 47          printf ( " captura de cadena excepción:% S " , error-> el c_str ());
 48          Eliminar el error;
 49      }
 50      la captura (...) {
 51 es          el printf ( " la captura ... \ n " );
 52 es      }
 53 es  
54 es      el retorno  0 ;
 55 }

  

3. Excepción declaración de interfaz de manipulación

Haga clic para ver

4. tipo anormal de ciclo de vida

4.1 los tipos básicos de tiro:

 Haga clic para ver

4.2 el tipo de cadena de tiro:

Haga clic para ver

4.3 de banda un tipo de clase de excepción:

Haga clic para ver

5. Excepciones y herencia

Haga clic para ver

6. La idea básica de manejo de excepciones

Haga clic para ver 

7. La clase de excepción biblioteca estándar

Haga clic para ver

 

Supongo que te gusta

Origin www.cnblogs.com/CooCoChoco/p/12528807.html
Recomendado
Clasificación