Classe System.NotImplementedException
Este artigo fornece observações complementares à documentação de referência para essa API.
A exceção NotImplementedException é gerada quando um determinado método, acessador get ou acessador set está presente como membro de um tipo, mas não é implementado.
NotImplementedException usa a implementação Object.Equals padrão, que oferece suporte à igualdade de referência. Para obter uma lista de valores de propriedade para uma instância do NotImplementedException, consulte os construtores NotImplementedException.
Gerar a exceção
Você pode optar por gerar uma exceção NotImplementedException em propriedades ou métodos em seus próprios tipos quando esse membro ainda estiver em desenvolvimento e só for implementado no código de produção posteriormente. Em outras palavras, uma exceção NotImplementedException deve ser sinônimo de "em desenvolvimento".
Gerar a exceção
A exceção NotImplementedException indica que o método ou a propriedade que você está tentando invocar não tem implementação e, portanto, não fornece nenhuma funcionalidade. Como resultado, você não deve gerar esse erro em um 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 for implementada na versão de produção de uma biblioteca.
Em alguns casos, uma exceção NotImplementedException pode não 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 de exceção NotSupportedException e PlatformNotSupportedException, que indicam que não existe implementação para um membro específico de um tipo. Você deve gerar um desses em vez de uma exceção NotImplementedException sob as seguintes condições:
Gere uma exceção PlatformNotSupportedException 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.
Gere uma exceção NotSupportedException se a implementação de um membro da interface ou uma substituição de um método de classe base abstrato não for possível.
Por exemplo, o método Convert.ToInt32(DateTime) gera uma exceção NotSupportedException 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 nesse caso porque a classe Convert implementa a interface IConvertible.
Você também deve gerar uma exceção NotSupportedException 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 falhem ao carregar.