2010-02-24 12 views

Respuesta

446

Commons Lang lo tiene. O podría lanzar un UnsupportedOperationException.

+22

Parece que NotImplementedException se ha eliminado de Commons Lang 3.0. –

+9

Creo que dado que UnsupportedOperationException es parte del marco de colecciones, solo debe usarse si se usa en el contexto de Colecciones. De lo contrario, se debería usar una RuntimeException. http://docs.oracle.com/javase/7/docs/technotes/guides/collections/index.html –

+8

@LeonardButz Viene de java.lang: http://docs.oracle.com/javase/1.5.0 /docs/api/java/lang/UnsupportedOperationException.html –

245

Creo que el java.lang.UnsupportedOperationException es lo que estás buscando.

+21

Digo que es algo bastante diferente. El NIE también dice que aún no se ha implementado, donde el UOE dice que nunca lo hará ... – Dykam

+3

@Dykam, ¿entonces no sería una NotImplementedYetException? – Yishai

+89

@Dykam: 'new UnsupportedOperationException (" No implementado aún ")' - ¿contento? –

50

Se podía hacerlo por sí solo (eso es lo que hice) - con el fin de no ser molestado con el manejo de excepciones, sólo tiene que extender el RuntimeException, su clase podría ser algo como esto:

public class NotImplementedException extends RuntimeException { 

    private static final long serialVersionUID = 1L; 

    public NotImplementedException(){} 
} 

Usted podría extenderse tomar un mensaje, pero si usa el método como lo hago (es decir, como recordatorio de que todavía hay algo por implementar), generalmente no hay necesidad de mensajes adicionales.

me atrevo a decir, que sólo utiliza este método, mientras que yo estoy en el proceso de desarrollar un sistema, hace que sea más fácil para mí para no perder la pista de qué métodos son todavía no se han aplicado correctamente :)

+3

Me gusta esta solución de la mejor manera porque es fácil tener un controlador de error especial, es fácil buscarla al encontrar todas las referencias al constructor NotImplementedException, y son solo unas pocas líneas de código. Pero es un poco incómodo tener que declarar una nueva clase con su propio archivo. –

+1

Estoy de acuerdo. Esto es mejor que el uso de 'UnsupportedOperationException' en mi opinión. ¡Ahora, si solo Java agregara esto a la biblioteca común de excepciones! – crush

9

n no existe y probablemente no esté allí, porque hay muy pocos usos válidos para ello. Lo pensaría dos veces antes de usarlo. Además, de hecho es fácil de crear tú mismo.

Consulte this discussion acerca de por qué está incluso en .NET.

Supongo que UnsupportedOperationException se acerca, aunque no dice que la operación simplemente no está implementada, pero no es compatible incluso. Eso podría implicar que no es posible una implementación válida. ¿Por qué la operación no sería compatible? ¿Debería estar allí? Segregación de la interfaz o problemas de sustitución Liskov tal vez?

Si se trata de un trabajo en progreso, buscaría ToBeImplementedException, pero nunca me he encontrado definiendo un método concreto y luego lo dejé durante tanto tiempo que lo puso en producción y habría una necesidad para tal excepción.