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 

System.ArgumentNullException

Fora do intervalo permitido de valores (sistema autônomo um índice para uma coleção ou lista)

System.ArgumentOutOfRangeException

De inválidoenum valor

System.ComponentModel.InvalidEnumArgumentException

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))

System.FormatException

Caso contrário inválido

System.ArgumentException

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.

Regras relacionadas

Não capturar tipos de exceção geral