Bloque de captura

Definición - ¿Qué significa Catch Block?

Un bloque de captura, en C #, es un bloque de código opcional que se ejecuta cuando se genera una excepción.

El bloque de captura es una parte específica de la construcción de manejo excepcional y se implementa utilizando la palabra clave "captura" en combinación con las palabras clave "probar" y "finalmente" y constituye el medio para implementar el manejo estructurado de excepciones. Un bloque de prueba incluye el código protegido que puede causar la excepción. Incluye declaraciones que tratan de circunstancias excepcionales y trabaja para recuperarse de tales condiciones inesperadas.

El bloque de captura constituye el medio para manejar excepciones. Si no se manejan, esto puede dar lugar a la terminación de todo el programa en el tiempo de ejecución de .NET. Se puede usar un bloque de captura para manejar cualquier excepción específica.

Techinfo explica Catch Block

El modelo de manejo de excepciones de Common Language Runtime (CLR) permite más de un bloque de captura, cada uno de los cuales está diseñado para manejar una excepción específica. Siempre que ocurre una excepción, CLR busca el bloque catch que maneja la excepción. Si el método que se está ejecutando actualmente no contiene dicho bloque, CLR lo busca en el método que llamó al método actual en la pila de llamadas. Si no se encuentra una cláusula coincidente para esa excepción en todo el código, la ejecución del subproceso se detiene y se muestra al usuario un mensaje de excepción no controlada.

Los siguientes son algunos consejos relacionados con el uso de un bloque de captura:

  • El tipo de excepción debe especificarse en el bloque de captura solo después de que se haya determinado el motivo detrás de la ocurrencia de excepciones específicas inevitables (como falla catastrófica del sistema, mal uso de API, etc.) y se haya implementado la recuperación sin dejar la aplicación en un estado inconsistente o Estado Inválido.
  • El bloque de captura debe colocarse de modo que las excepciones más específicas deban capturarse antes que las menos específicas.
  • El bloque de captura sin parámetros se denomina "excepciones de alimentación" porque esto puede eliminar problemas graves que son difíciles de depurar.
  • El bloque de captura se puede centralizar para que pueda manejar la excepción desde una ubicación central.
  • La instrucción "throw" se puede usar dentro del bloque catch para el cual el mismo objeto de excepción pasado en throw se puede pasar de nuevo mientras se vuelve a lanzar.
  • Las variables declaradas dentro de un bloque try no se pueden usar fuera de él.
  • El código no volverá al bloque try después de que se haya ejecutado el bloque catch.
  • Probar el código del controlador de excepciones en el bloque de captura es esencial para evitar romper la aplicación.
  • El bloque de captura no debe usarse para el código de limpieza.
  • El bloque Catch sin parámetros no se puede usar para manejar excepciones que no cumplan con Common Language System (aquellas que no se derivan de System.Exception).

Esta definición se escribió en el contexto de C #