¿Cuáles son los mecanismos de excepción en c ++?

Video: Tutorial de C++ en Español # 37 - Excepciones

De vez en cuando las funciones no funcionan correctamente - incluso para los programadores experimentados de C ++. Los medios tradicionales de informar el fracaso es volver alguna indicación a la persona que llama. C ++ incluye un mecanismo para la captura y el manejo de errores llamado excepciones. La manipulación de las condiciones de error con excepciones es un concepto clave para entender.

Video: Curso de C++: Manejo de Excepciones en C++ parte 01

El mecanismo de excepción se basa en las palabras clave trata de atraparlo, y lanzar (Que es nombres correctos, más variables que no se puede utilizar). A grandes rasgos, funciona así: Una función intentos para obtener a través de una pieza de código. Si el código detecta un problema, lanzars una indicación de error que la función de llamada debe captura.

El siguiente fragmento de código se muestra cómo funciona en 1 y 0:

Video: Manejo de Excepciones en C# TRY CATCH. (Control de Errores) | Parte 1 - Tutorial 2014

// FactorialException - demostrar excepciones usando // una función factorial // # include #incluir #incluir using namespace std - // factorial - calcular factorialint factorial (int n) {// no se puede manejar valores negativos de n - // mejor cheque por esa condición firstif (n lt; 0) {string tiro ("Argumento para la negativa factorial") -} // seguir adelante y calcular factorialint acum = 1-tiempo (n gt; 0) {acum * = n-n ---} volver accum-} int main (int nNumberofArgs, char * pszArgs []) {try {// esto workcout lt; lt; "Factorial de 3 es "lt; lt; factorial (3) lt; lt; endl - // esto generará un exceptioncout lt; lt; "Factorial de -1 es "lt; lt; factorial (-1) lt; lt; endl - // control nunca obtendrá herecout lt; lt; "Factorial de 5 es "lt; lt; factorial (5) lt; lt; endl -} // el control pasa herecatch (error string) {cout lt; lt; "Se produjo un error: " lt; lt; error lt; lt; endl-} catch (...) {cout lt; lt; "captura por defecto " lt; lt; endl -} // espera hasta que el usuario esté listo antes de finalizar el programa // para permitir al usuario ver el programa resultscout lt; lt; "Pulse Intro para continuar ..." lt; lt; endl-cin.ignore (10, `n`) - cin.get () - volver 0-}

principal() comienza a cabo mediante la creación de un bloque equipado con el tratar palabra clave. Dentro de este bloque, se puede proceder de la manera que lo haría si el bloque no estaban presentes. En este caso, principal() los intentos para calcular el factorial de un número negativo.

Video: [Programación/C++] Excepciones

Para no ser engañado, los inteligentes factorial() función detecta la solicitud falso y lanza una indicación de error utilizando la lanzar palabra clave. El control pasa a la captura frase, que sigue inmediatamente la llave de cierre de la tratar bloquear. La tercera llamada a factorial() no se realiza.

A través de una característica no tan inteligente llamado especificación de excepción, puede agregar el tipo de objetos que factorial() lanza a su declaración. En un momento, alguien pensó que sería una buena idea, pero los tiempos cambian. especificaciones de excepción no eran obligatorios y están en desuso en la norma 2011.

Artículos Relacionados