Exceptions werfen und in JTextArea ausgeben

Blokko

Mitglied
Hi alle miteinander,

wir haben im Rahmen eines Praktikums eine kleine Software geschrieben, in der wir eigene Exceptions definieren und werfen, wenn der entsprechende Fall eintritt.
Ergänzend schreibe ich eine GUI für diese Software und würde gerne die von uns geworfene Exception abfangen und in einer JTextArea ausgeben lassen.
Nun ist es in unserem Fall so, dass diese Exceptions ja nicht in einem catch-Block geworfen werden und ich somit kein Exception-Objekt habe. Unser Fall sieht so aus:

Java:
if (assertion.indexOf("CREATE ASSERTION") != 0) {
	throw new ParserException(
		"Das Statement muss mit \"CREATE ASSERTION\" beginnen",
		assertion);
}

Hierbe sind "assertion" und "ParserException" eine eigene Variable, bzw. Klasse.
Kann mir da jemand weiterhelfen, wie ich das angehen sollte?
Grüße und danke schön,

Blokko
 
Du kannst die Exception doch genauso fangen wie jede andere auch:

Java:
try {
    ... wirft Exception ...
} catch (ParserException pe) {
   ... exception in die JTextArea schreiben ...
}

Nun ist es in unserem Fall so, dass diese Exceptions ja nicht in einem catch-Block geworfen werden und ich somit kein Exception-Objekt habe.
Das erklär vielleicht nochmal etwas genauer.
 
Erstmal danke für die schnelle Antwort.

Also könnte ich das if-Statement in einem try-Block verpacken, dort die Exception im if-Block werfen und somit im catch-Block abfangen?

Und ich meinte natürlich, dass unsere Exceptions ja nicht in einem TRY-Block geworfen werden... verschrieben. 😳
 
In einem catch-Block werden ja auch keine Exceptions geworfen, sondern, wie der Name schon sagt, gefangen.
Du wirst ja die Exception bestimmt nicht aus Spass. Es existiert also irgendwo eine Stelle, die diese mit einem Catch-Block auffängt. An dieser Stelle musst du dann den Text in jtextarea ausgeben.
Wie genau du es machst kann man von den Informationen nicht beantworten... das hängt davon ab wie du die GUI gemacht hast. Ob nun MVC oder ähnliches. Optional wäre folgende Möglichkeit:
Du machst einen Singleton "GuiLogger". Deine GUI meldet sich bei dem "GuiLogger" an und übergibt etweder eine Refferenz auf sich selber oder nur auf die textarea. Und dann kannst du von einer beliebigen Stelle deines Programms Text ausgeben ohne ständig Refferenzen mit sich zu schleppen.
 
Danke an beide!
Funktioniert jetzt so wie es soll!

@XHelp: Der GuiLogger ist noch eine zusätzlich interessante Info. Diesen Singleton kannte ich noch nicht!
 

Zurück
Oben