Não aumente os tipos de exceção reservada
TypeName |
DoNotRaiseReservedExceptionTypes |
CheckId |
CA2201 |
Category (Categoria) |
Microsoft.uso |
Quebrando alterar |
Quebrando |
Causa
Um método gera um tipo de exceção que é muito geral ou que está reservada pelo tempo de execução.
Descrição da regra
Os seguintes tipos de exceção são muito Geral para fornecer informações suficientes para o usuário:
Os seguintes tipos de exceção são reservados e devem ser lançados somente pelo common linguagem tempo de execução:
Não lançar exceções Geral
Se você lançar um tipo de exceção geral, sistema autônomo Exception ou SystemException em uma biblioteca ou estrutura, ela força sistema autônomo consumidores para interceptar todas sistema autônomo exceções, incluindo exceções desconhecidas que eles não sabem sistema autônomo manipular.
Em vez disso, o lançar um tipo mais derivado que já existe na estrutura ou criar seu próprio tipo que deriva de Exception.
Lançar exceções específicas
A tabela a seguir mostra os parâmetros e quais exceções lançar ao validar o parâmetro, incluindo o parâmetro valor no acessador conjunto de uma propriedade:
Descrição do parâmetro |
Exceção |
---|---|
null referência |
|
Fora do intervalo permitido de valores (sistema autônomo um índice para uma coleção ou lista) |
|
De inválidoenum valor |
|
Contém um formato que não está de acordo com sistema autônomo especificações do parâmetro de um método (sistema autônomo a seqüência de formato ToString(String)) |
|
Caso contrário inválido |
Quando uma operação é inválido para o estado corrente de um objeto throw System.InvalidOperationException
Quando uma operação é executada em um objeto foi descartado throw System.ObjectDisposedException
Quando uma operação não é suportado (sistema autônomo em uma substituição Stream.gravar em um fluxo aberto para leitura) lançam System.NotSupportedException
Quando uma conversão resultaria em um estouro de capacidade (sistema autônomo em uma sobrecarga de operador de conversão explícita) lançam System.OverflowException
Para todas as outras situações, considere criar seu próprio tipo que deriva de Exception e lançar que.
Como corrigir violações
Para corrigir uma violação dessa regra, altere o tipo de exceção gerada para um tipo específico que não é um dos tipos de reservado.
Quando suprimir avisos
Não suprimir um aviso da regra.