System.NotImplementedException classe

Observação

Este artigo fornece observações complementares à documentação de referência para esta API.

A NotImplementedException exceção é lançada quando um determinado método, get accessor ou set accessor está presente como um membro de um tipo, mas não é implementado.

NotImplementedException usa a implementação padrão de Object.Equals, que suporta a igualdade de referência. Para obter uma lista de valores iniciais para uma instância de NotImplementedException, consulte os NotImplementedException construtores.

Lançar a exceção

Você pode optar por lançar uma NotImplementedException exceção em propriedades ou métodos em seus próprios tipos quando esse membro ainda estiver em desenvolvimento e só mais tarde será implementado no código de produção. Em outras palavras, uma NotImplementedException exceção deve ser sinônimo de "ainda em desenvolvimento".

Gerir a exceção

A NotImplementedException exceção indica que o método ou propriedade que você está tentando invocar não tem implementação e, portanto, não fornece nenhuma funcionalidade. Como resultado, não se deve tratar este erro num bloco try/catch. Em vez disso, você deve remover a invocação de membro do seu código. Você pode incluir uma chamada para o membro quando ela é implementada na versão de produção de uma biblioteca.

Em alguns casos, uma NotImplementedException exceção não pode ser usada para indicar a funcionalidade que ainda está em desenvolvimento em uma biblioteca de pré-produção. No entanto, isso ainda indica que a funcionalidade não está disponível e você deve remover a invocação de membro do seu código.

NotImplementedException e outros tipos de exceção

O .NET também inclui dois outros tipos NotSupportedException de exceção e PlatformNotSupportedException, que indicam que não existe implementação para um membro específico de um tipo. Você deve lançar um destes em vez de uma NotImplementedException exceção nas seguintes condições:

  • Lance uma PlatformNotSupportedException exceção em plataformas nas quais a funcionalidade não é suportada se você tiver criado um tipo com um ou mais membros que estão disponíveis em algumas plataformas ou versões, mas não em outras.

  • Lance uma NotSupportedException exceção se a implementação de um membro da interface ou uma substituição para um método de classe base abstrato não for possível.

    Por exemplo, o Convert.ToInt32(DateTime) método lança uma NotSupportedException exceção porque não existe nenhuma conversão significativa entre uma data e hora e um inteiro assinado de 32 bits. O método deve estar presente neste caso porque a Convert classe implementa a IConvertible interface.

Você também deve lançar uma NotSupportedException exceção se tiver implementado uma classe base abstrata e adicionar um novo membro a ela que deve ser substituído por classes derivadas. Nesse caso, tornar o membro abstrato faz com que as subclasses existentes não sejam carregadas.