Cómo usar las instrucciones Try Catch en C

Como Usar Las Instrucciones Try Catch En C



Las palabras 'intentar' y 'atrapar' describen qué hacer cuando un programa encuentra una excepción debido a un problema de código o datos. Las excepciones se manejan en un intentar bloque de código. Los bloques Catch se utilizan para encontrar y manejar excepciones de los bloques Try. Muchos lenguajes de programación, incluidos Python, C++ y JavaScript, incluyen trata de atraparlo declaraciones.

Este artículo demuestra qué es una instrucción try-catch y cómo se implementa usando un ejemplo en programación C.

¿Qué es una instrucción Try Catch?

El intentar instrucción define una colección de declaraciones que podrían crear una excepción. Cuando ocurre un tipo específico de excepción, el bloque catch es donde se envía la excepción. El compilador generará un aviso de error o la excepción continuará viajando hacia arriba en la pila de llamadas hasta que se solucione si el bloque try/catch falla al manejarlo.







La sintaxis general de la trata de atraparlo declaración se da como:



intentar {
    /*
Inserte algún código que probablemente generará errores
    */
}
atrapar {
    /*
escribir un código para el manejo de los errores generados.
    */
}

¿Qué es una instrucción try-catch en C?

C no admite el manejo de excepciones y no tiene un mecanismo incorporado para hacerlo. Sin embargo, puede simular esto hasta cierto punto usando setjmp y largojmp llamadas Sin una forma de liberar memoria una vez que se ha visitado la pila, los mecanismos de manejo de excepciones son ineficientes e inseguros, y C no tiene un recolector de basura. Para liberar RAM, es probable que también necesitemos integrar administradores de contexto.



Ahora, a medida que hacemos mejoras en el código, construiremos gradualmente una solución. Longjmp y setjmp son dos funciones de C que puede proporcionar el archivo de encabezado setjmp.h que utilizaremos. La función setjmp acepta variables de tipo jmp_buf y devuelve 0 cuando se llama directamente. Cuando se utiliza la misma variable jmp_buf para invocar longjmp con dos variables, la función setjmp devuelve un valor que coincide con el valor del segundo argumento de longjmp.





Un ejemplo de la implementación anterior se da como:

#incluir
#include
#define TRY do { jmp_buf buf_state; if ( !setjmp(buf_state)) {
#define CATCH } más {
#define ENDTRY }} while(0)
#define THROW longjmp(buf_state, 1)
int principal ( )
{
INTENTAR {
        imprimir ( 'Pruebe la prueba de declaración \norte ' ) ;
TIRAR;
        imprimir ( 'La declaración no debería aparecer, ya que el bloque THROW ya lanzó la excepción \norte ' ) ;
    }
ATRAPAR {
        imprimir ( 'Se obtuvo una excepción \norte ' ) ;
    }
ENTRADA;
    devolver 0 ;
}

En el programa en C anterior, el ENTRADA La función se utiliza para proporcionar la parte de cierre del bloque do-while.



Conclusión

Si un programa encuentra una excepción debido a un error de datos o de codificación mientras se está ejecutando, “ intentar ' y ' atrapar ” describe cómo manejarlo. en un intentar bloque de código, se producen excepciones mientras un atrapar el bloque es de donde provienen los errores intentar los bloques son encontrados y manejados. Muchos lenguajes de programación soportan el trata de atraparlo bloque pero la C no. Esta guía describió un método para usar sentencias try-catch en programación C.