Bloco de captura

Definição - O que significa Catch Block?

Um bloco catch, em C #, é um bloco opcional de código executado quando uma exceção é levantada.

O bloco Catch é uma parte específica da construção de tratamento excepcional e é implementado usando a palavra-chave "catch" em combinação com as palavras-chave "try" e "finally" e forma os meios para implementar o tratamento estruturado de exceções. Um bloco try inclui o código protegido que pode causar a exceção. Ele inclui declarações que tratam de circunstâncias excepcionais e trabalham para se recuperar de tais condições inesperadas.

O bloco catch é o meio para lidar com exceções. Se isso não for feito, o programa inteiro pode ser encerrado no tempo de execução do .NET. Um bloco catch pode ser usado para tratar qualquer exceção ou exceções específicas.

Definirtec explica Catch Block

O modelo de tratamento de exceção do Common Language Runtime (CLR) permite mais de um bloco catch, cada um deles projetado para tratar uma exceção específica. Sempre que ocorre uma exceção, o CLR procura o bloco catch que trata a exceção. Se o método atualmente em execução não contém tal bloco, o CLR procura por ele no método que chamou o método atual na pilha de chamadas. Se não houver nenhuma cláusula correspondente encontrada para essa exceção em todo o código, a execução do thread é interrompida e uma mensagem de exceção não tratada é exibida para o usuário.

A seguir estão algumas dicas relacionadas ao uso de um bloco catch:

  • O tipo de exceção deve ser especificado para o bloco catch somente depois que o motivo por trás da ocorrência de exceções não evitáveis ​​específicas (como falha catastrófica do sistema, uso indevido da API, etc.) foi determinado e a recuperação foi implementada sem deixar o aplicativo em um estado inconsistente ou Estado inválido.
  • O bloco catch deve ser posicionado de forma que as exceções mais específicas sejam capturadas antes das menos específicas.
  • O bloco catch sem parâmetros é conhecido como "comer exceções" porque isso pode suprimir problemas graves que são difíceis de depurar.
  • O bloco de captura pode ser centralizado para que possa tratar a exceção de um local central.
  • A instrução "throw" pode ser usada dentro do bloco catch para o qual o mesmo objeto de exceção passado em throw pode ser passado novamente durante o relançamento.
  • Variáveis ​​declaradas dentro de um bloco try não podem ser usadas fora dele.
  • O código não retornará ao bloco try após a execução do bloco catch.
  • Testar o código do manipulador de exceção no bloco catch é essencial para evitar quebrar o aplicativo.
  • Bloco de captura não deve ser usado para código de limpeza.
  • O bloco Catch sem parâmetros não pode ser usado para tratar exceções não compatíveis com o Common Language System (aquelas não derivadas de System.Exception).

Esta definição foi escrita no contexto de C #