CA2219: Não acionar exceções em cláusulas de exceção
Property | Valor |
---|---|
ID da regra | CA2219 |
Título | Não acionar exceções em cláusulas de exceção |
Categoria | Usage |
Correção com ou sem interrupção | Sem interrupção, com interrupção |
Habilitado por padrão no .NET 8 | Como sugestão |
Causa
Uma exceção é gerada por uma cláusula de finally
, filtro ou falha.
Descrição da regra
Quando uma exceção é gerada em uma cláusula de exceção, aumenta consideravelmente a dificuldade de depuração.
Quando uma exceção é gerada em uma cláusula de finally
ou de falha, a nova exceção oculta a exceção ativa, se presente. Isso torna o erro original difícil de detectar e depurar.
Quando uma exceção é gerada em uma cláusula de filtro, o runtime a captura silenciosamente e faz com que o filtro seja avaliado como falso. Não há como dizer a diferença entre o filtro que está sendo avaliado como falso e uma exceção que está sendo gerada por um filtro. Isso dificulta a detecção e a depuração de erros na lógica do filtro.
Como corrigir violações
Para corrigir essa violação de regra, não gere explicitamente uma exceção de uma cláusula de finally
, filtro ou falha.
Quando suprimir avisos
Não suprima um aviso dessa regra. Não há cenários nos quais uma exceção gerada em uma cláusula de exceção ofereça um benefício para o código em execução.
Regras relacionadas
CA1065: Não acionar exceções em locais inesperados