Partilhar via


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 finallyclá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 finallyclá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.

CA1065: Não gere exceções em locais inesperados

Consulte também