CA2219: Não levante exceções em cláusulas de exceção
Property | valor |
---|---|
ID da regra | CA2219 |
Título | Não levante exceções em cláusulas de exceção |
Categoria | Utilização |
A correção está quebrando ou não quebrando | Inquebrável, Quebrando |
Habilitado por padrão no .NET 9 | Como sugestão |
Motivo
Uma exceção é lançada a partir de uma finally
cláusula , filtro ou falha.
Descrição da regra
Quando uma exceção é gerada em uma cláusula de exceção, isso aumenta muito a dificuldade de depuração.
Quando uma exceção é gerada em uma finally
cláusula ou cláusula de falha, a nova exceção oculta a exceção ativa, se presente. Isso torna o erro original difícil de detetar e depurar.
Quando uma exceção é gerada em uma cláusula de filtro, o tempo de execução captura silenciosamente a exceção e faz com que o filtro seja avaliado como false. Não há como diferenciar o filtro de ser falso e uma exceção ser lançada de um filtro. Isso dificulta a deteção e depuração de erros na lógica do filtro.
Como corrigir violações
Para corrigir essa violação desta regra, não levante explicitamente uma exceção de uma finally
cláusula de filtro ou falha.
Quando suprimir avisos
Não suprima um aviso para esta regra. Não há cenários em que uma exceção gerada em uma cláusula de exceção forneça um benefício para o código de execução.
Regras conexas
CA1065: Não gere exceções em locais inesperados