Ich bin mit den Ausnahmepaketen von Java nicht so vertraut wie mit denen von .NET. Ich bin in einer Situation, in der ich beim Programmieren in C # eine werfen würde System.InvalidOperationException
.
Bevor ich meine eigene java.lang.RuntimeException
Unterklasse erstelle , muss ich wissen, ob es einen ähnlichen Ausnahmetyp gibt, den ich in Java auslösen sollte.
Das genaue Szenario ist:
Meine Klasse ist ein Wertobjekt, das eine int intValue()
Methode bereitstellt und ein int zurückgibt. In einigen Situationen kann der aktuelle Wert jedoch nicht als int angegeben werden. Daher bietet diese Klasse auch eine boolean isInteger()
, damit API-Benutzer wissen, wann intValue()
sie sicher aufgerufen werden können.
Wenn ein Anrufer anruft, intValue()
wann isInteger()
ist false
, sollte eine Ausnahme ausgelöst werden.
Und die Frage ist: Welche Art von Ausnahme?
Ich weiß, dass diese Frage möglicherweise nicht richtig beantwortet wird, aber da ich nicht viel Erfahrung mit dem Entwerfen von Java-APIs habe, möchte ich von anderen Java-Entwicklern wissen, was sie in diesem Szenario erwarten würden.
Vielen Dank
Antworten:
Wirf ein
IllegalStateException
:quelle
IllegalStateException
ist definitiv richtig für den speziellen Fall, nach dem gefragt wurde. Beachten Sie, dass es in einigen Situationen meiner Meinung nach angemessener ist, eine zu werfenUnsupportedOperationException
. Zum Beispiel, wenn anIterator
dieremove
Methode nicht unterstützt .