Gibt es so etwas wie .NET NotImplementedException
in Java?
Gibt es so etwas wie .NET NotImplementedException
in Java?
Antworten:
Commons Lang hat es. Oder du könntest einen werfen UnsupportedOperationException
.
Ich denke, das java.lang.UnsupportedOperationException
ist was du suchst.
new UnsupportedOperationException("Not implemented yet")
- glücklich?
Sie können es selbst tun (das habe ich getan) - um sich nicht mit der Ausnahmebehandlung zu beschäftigen, erweitern Sie einfach die RuntimeException, Ihre Klasse könnte ungefähr so aussehen:
public class NotImplementedException extends RuntimeException {
private static final long serialVersionUID = 1L;
public NotImplementedException(){}
}
Sie können es erweitern, um eine Nachricht aufzunehmen. Wenn Sie die Methode jedoch wie ich verwenden (dh als Erinnerung daran, dass noch etwas implementiert werden muss), sind normalerweise keine zusätzlichen Nachrichten erforderlich.
Ich wage zu sagen, dass ich diese Methode nur verwende, während ich gerade ein System entwickle, was es mir leichter macht, nicht den Überblick zu verlieren, welche Methoden noch nicht richtig implementiert sind :)
UnsupportedOperationException
meiner Meinung nach besser als die Verwendung von . Wenn nur Java dies zur allgemeinen Bibliothek von Ausnahmen hinzufügen würde!
Wie bereits erwähnt, hat das JDK keine enge Übereinstimmung. Mein Team hat jedoch gelegentlich auch eine Verwendung für eine solche Ausnahme. Wir hätten mitmachen können, UnsupportedOperationException
wie in anderen Antworten vorgeschlagen, aber wir bevorzugen eine benutzerdefinierte Ausnahmeklasse in unserer Basisbibliothek, die veraltete Konstruktoren enthält:
public class NotYetImplementedException extends RuntimeException
{
/**
* @deprecated Deprecated to remind you to implement the corresponding code
* before releasing the software.
*/
@Deprecated
public NotYetImplementedException()
{
}
/**
* @deprecated Deprecated to remind you to implement the corresponding code
* before releasing the software.
*/
@Deprecated
public NotYetImplementedException(String message)
{
super(message);
}
}
Dieser Ansatz hat folgende Vorteile:
NotYetImplementedException
, wissen sie, dass eine Implementierung geplant war und entweder vergessen wurde oder noch in Bearbeitung ist, während dies UnsupportedOperationException
(im Einklang mit den Inkassoverträgen) gilt ) dass etwas niemals implementiert wird. Deshalb haben wir das Wort "noch" im Klassennamen. Eine IDE kann auch die Anrufstellen leicht auflisten.import
Zeile (JDK 9 hat dies jedoch behoben ).Nein, gibt es nicht und es ist wahrscheinlich nicht da, weil es nur sehr wenige gültige Verwendungen dafür gibt. Ich würde zweimal überlegen, bevor ich es benutze. Auch ist es in der Tat einfach, sich selbst zu erstellen.
In dieser Diskussion erfahren Sie, warum es überhaupt in .NET ist.
ich vermute UnsupportedOperationException
kommt nahe, obwohl es nicht heißt, dass die Operation einfach nicht implementiert ist, aber sogar nicht unterstützt wird. Dies könnte bedeuten, dass keine gültige Implementierung möglich ist. Warum wird die Operation nicht unterstützt? Sollte es überhaupt da sein? Probleme mit der Schnittstellentrennung oder der Liskov-Substitution vielleicht?
Wenn es in Arbeit ist, würde ich mich dafür entscheiden ToBeImplementedException
, aber ich habe mich nie dabei ertappt, eine konkrete Methode zu definieren und sie dann so lange zu belassen, bis sie in Produktion geht, und es wäre eine solche Ausnahme erforderlich.