Exceções devem ser públicas
TypeName |
ExceptionsShouldBePublic |
CheckId |
CA1064 |
Category (Categoria) |
Microsoft.Design |
Quebrando alterar |
Não separável |
Causa
Uma exceção não-públicos deriva diretamente de System.Exception, System.SystemException, ou System.ApplicationException.
Descrição da regra
Uma exceção interna só é visível dentro de seu próprio escopo interno.Depois que a exceção cair fora do escopo interno, somente a exceção base pode ser usada para capturar a exceção.Se a exceção interna é herdada do T:sistema. Exception, T:sistema.SystemException ou T:sistema.ApplicationException, o código externo não terá informações suficientes para saber o que fazer com a exceção.
Mas, se o código possui uma exceção pública que posteriormente é usada sistema autônomo base para uma exceção interna, é razoável presumir que o código ainda mais check-out será capaz de fazer algo inteligente com a exceção de base.A exceção pública terão mais informações do que o que é fornecido pelo T:sistema. Exception, T:sistema.SystemException ou T:sistema.ApplicationException.
Como corrigir violações
Publique a exceção ou derivar a exceção interna de uma exceção pública que não é System.Exception, System.SystemException, ou System.ApplicationException.
Quando suprimir avisos
Suprimir uma mensagem a partir desta regra se você tiver certeza de que todos os casos que a exceção particular irá ser detectada no seu próprio escopo interno.
Exemplo
A seguir mostra três exemplos que violam a regra.