Exceptions in eigener JAVA-Klassenbibliothek

RalU

Mitglied
Hallo,

ich bin zur Zeit mit einer Projektarbeit beschäftigt, bei der es um die Implementierung einer eigenen JAVA-Klassenbibliothek geht, die einen bestimmten Sachverhalt unterstützt. (Für meine Frage ist es erstmal egal, was diese JAVA-Klassenbibliothek überhaupt leistet).

Meine Frage richtet sich an die Exceptions. Und zwar kommt es vor, dass ich für diese JAVA-Klassenbibliothek eigene Exceptions definieren und auch werfen muss. Zur Zeit wird dann der Exceptiontext in der Konsole ausgegeben.

Weiterhin soll ich nun ein Beispielprogramm (Gui mit JAVA-Swing) entwickeln, dass diese Klassenbibliothek benutzt.
Das Beispielprogramm soll aber die Exceptions nicht in der Konsole ausgeben, sondern als Dialoge.

Wie muss ich hier vorgehen?
Meine erste Überlegung war, bereits innerhalb der von mir entwickelten Klassenbibliothek die Exceptions bereits als Dialoge (anstatt auf die Konosle) auszugeben. Hätte dann allerdings den Nachteil, dass bei einem Javaprogramm ohne grafische Benutzeroberfläche dennoch die Exceptions als Dialoge ausgibt.
Welche Möglichkeiten gibt es hier noch?

Gruß, Ralf
 
Also, die Exceptions generell als Dialog auszugeben halte ich für keine gute Idee, den nicht jeder hat eine GUI bzw. nicht jeder will die Exceptions anzeigen lassen. Ich würde die Exception ganz einfach weitergeben an das Programm, das deine Klasse benutzt. Diese soll entscheiden was damit passiert!
 
Also das Problem ist folgendes: Ich habe für meine Klassenbibliothek eine eigene Exception-Klasse geschrieben, die aus Exception abgeleitet ist.
Diese Exceptionklasse erhält im Konstruktor einen String-Parameter für den Fehlertext/Hinweistext.
Dieser Hinweistext ist also nicht festgelegt. Die Exception-Klasse gibt beim Aufruf von throws new Exception-Klasse(Fehlertext) natürlich den Fehlertext auf der Konsole aus.
Da aber Fremdprogramme diese Exceptions selbst behandeln wollen, um den Fehlertext z.B. in einem Dialog auszugeben, bringt doch eigentlich ein throws new Exception-Klasse... beim Auftreten der Exception nichts.
Und wenn ich try/catch bereits in meiner Klassenbibliothek einsetze, dann muss ich auch bereits dort die Exception behandeln.
Ziel muss es also sein: Das Fremdprogramm, dass meine Klassenbibliothek benutzt, muss an der entsprechenden Stelle try/catch benutzen, um dann im catch-Block die auftretende Exception behandeln zu können, wie es will.
Das Problem dabei ist wohl der String-Parameter...
Irgendwie komm ich hier nicht weiter.
 
Dann mach es doch einfach so das deine Exception Klasse die Fehlermeldung nicht ausgibt sondern nur diese Informationen speichert. Das Programm das deine Klasse benutzt muss try-catch benutzen, das ist ganz normal. Wenn eine Exception auftritt gibt die Exception Instanz per throw weiter. Das Programm kann dann selbst entscheiden was es machen will.

In deiner Exception Klasse kannst du ja dann Methoden printError(), printErrorCode() oder z.B. showExceptionDialog(), und das Programm kann dann je nachdem was es will entweder den Fehler ausgeben auf der Konsole oder als Dialog!

Gruß
 
Zurück