Partilhar via


CA2219: Não geram exceções em cláusulas de exceção

TypeName

DoNotRaiseExceptionsInExceptionClauses

CheckId

CA2219

<strong>Categoria</strong>

Microsoft.Usage

Alteração significativa

Não separável, quebrando

Causa

Uma exceção é lançada a partir de um finally, filtro ou cláusula de falhas.

Descrição da regra

Quando uma exceção é gerada em uma cláusula de exceção, ele aumenta muito a dificuldade de depuração.

Quando uma exceção é gerada em um finally ou cláusula de falhas, a nova exceção oculta a exceção ativa, se estiver presente.Isso torna difícil detectar e depurar o erro original.

Quando uma exceção é gerada em uma cláusula de filtro, o runtime silenciosamente a exceção e faz com que o filtro a ser avaliada como false.Não há nenhuma maneira de saber a diferença entre o filtro de avaliar como false e uma exceção sendo throw de um filtro.Isso torna difícil detectar e depurar erros na lógica do filtro.

Como corrigir violações

Para corrigir essa violação desta regra, não explicitamente elevar uma exceção de um finally, filtro ou cláusula de falhas.

Quando suprimir avisos

Não suprimir um aviso para esta regra.Não há nenhum cenário em que uma exceção gerada em uma cláusula de exceção fornece um benefício para o código de execução.

Regras relacionadas

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

Consulte também

Outros recursos

Avisos de design