Clase System.NotImplementedException

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

La excepción NotImplementedException se produce cuando un método determinado, un descriptor de acceso GET o un descriptor de acceso SET está presente como miembro de un tipo, pero no se implementa.

NotImplementedException usa la implementación predeterminada Object.Equals, que admite la igualdad de referencias. Para obtener una lista de valores iniciales de una instancia de NotImplementedException, consulte los constructores deNotImplementedException.

Generación de la excepción

Puede optar por iniciar una excepción NotImplementedException en propiedades o métodos de sus propios tipos cuando el miembro todavía está en desarrollo y solo se implementará más adelante en el código de producción. En otras palabras, una excepción NotImplementedException debe ser sinónimo de "todavía en desarrollo".

Control de la excepción

La excepción NotImplementedException indica que el método o propiedad que está intentando invocar no tiene ninguna implementación y, por tanto, no proporciona ninguna funcionalidad. Como resultado, no debe controlar este error en un bloque try/catch. En su lugar, debe quitar la invocación de miembro del código. Puede incluir una llamada al miembro cuando se implementa en la versión de producción de una biblioteca.

En algunos casos, es posible que no se use una excepción NotImplementedException para indicar la funcionalidad que todavía está en desarrollo en una biblioteca de preproducción. Sin embargo, esto sigue indicando que la funcionalidad no está disponible y debe quitar la invocación de miembro del código.

NotImplementedException y otros tipos de excepción

.NET también incluye otros dos tipos de excepción, NotSupportedException y PlatformNotSupportedException, que indican que no existe ninguna implementación para un miembro determinado de un tipo. Debe iniciar una de estas en lugar de una excepción NotImplementedException en las condiciones siguientes:

  • Inicie una excepción PlatformNotSupportedException en plataformas en las que no se admite la funcionalidad si ha diseñado un tipo con uno o varios miembros que están disponibles en algunas plataformas o versiones, pero no en otros.

  • Inicie una excepción NotSupportedException si no es posible la implementación de un miembro de interfaz o una invalidación en un método de clase base abstracta.

    Por ejemplo, el método Convert.ToInt32(DateTime) produce una excepción NotSupportedException porque no existe ninguna conversión significativa entre una fecha y hora y un entero con signo de 32 bits. El método debe estar presente en este caso porque la Convert clase implementa la interfaz IConvertible.

También debe producir una excepción NotSupportedException si ha implementado una clase base abstracta y le agrega un nuevo miembro que deben invalidar las clases derivadas. En ese caso, hacer que el miembro sea abstracto provoca que las subclases existentes no se carguen.