Sinn eigener Exceptions

Kiola

Mitglied
Hallo,

ich frage mich gerade, was der Sinn ist eigene Exceptions zu schreiben.
Ich habe ein Programm geschrieben, welches verschiedene Exceptions abfängt wie z. B. NumberFormat, FileNotFound und IOException. Zusätzlich habe ich eine eigene Klasse FormatException geschrieben, die Formatfehler der Datei abfängt. Jede Mal, wenn z.B. in der Datei ein Zeichen an einer Stelle auftaucht, welches dort nicht auftauchen soll, wird throw new FormatException("text.."); aufgerufen.
Jedoch frage ich mich gerade, ob es nicht dasselbe ist, wie wenn ich throw new Exception("text.."); aufrufe.

Viele Grüße, Kiola
 

Foermchen82

Top Contributor
Es macht sinn verschiedene Exceptions zu benutzen, da du dann in den Catch-Anweisungen auf Verschieden Fehler reagieren kannst. Wenn du allerdings meinst: "Alles was passieren kann, tue immer das selbe" Dann kannst du auch nur mit "Exception" arbeiten. Ist aber unschön
 

Der Müde Joe

Top Contributor
Exceptions sollten immer so spezifisch wie nur möglich sein. Dann kann man auch gesondert darauf reagieren.
Ein falsches Format eiggegeben FormatException. Der User kann nochmals. FileCorruptedException: Da kann man dann nicht
mehr viel machen. Wenn einfach alles Exception ist, kann man nicht mehr speziell auf Ereignisse reagieren.
 

Kiola

Mitglied
aber wenn ich in dem catch-Block eh nur e.getMessage() ausgebe und sonst nichts anderes mache.. reicht es dann nicht einfach throw new Exception("text") zu machen?
 

Marco13

Top Contributor
Die Antwort könnte sein: Vielleicht will sie jemand anderes behandeln oder weiterreichen. Die Frage, warum man ein pauschales "catch(Exception e){printSomething();}" macht, wäre da IMHO interessanter ;)
 

ice-breaker

Top Contributor
aber dann schreibt man ihm nicht einfach nur eine Fehlermeldung auf die Console.
frei nach dem Motto: "Da ist ein Fehler, mach mal" ?

In dem Falle, wenn ein Fehler auftritt würdest du ihm das sagen und ihn gleich zu der Stelle zurückbringen, wo er den Fehler beheben kann oder anderes.
Einfach nur eine Fehlermeldung ausgeben ist keine Fehlerbehandlung.
 

Kiola

Mitglied
ja natürlich muss man dann eine sinngemäße Fehlermeldung ausgeben, die einem dann sagt WO man was falsch gemacht hat.
Trotzdem verstehe ich dann nicht wirklich, wofür man eine eigene Exception Klasse definiert. Mit throw new Exception("..") kann man dem Benutzer ja auch genau sagen, wo sein Fehler ist und warum
 

Foermchen82

Top Contributor
Exceptions dienen aber nicht nur dazu, dem User etwas mitzuteilen. Auch das System kann reagieren. Hier hilft es zu wissen, was passiert ist. Das System kann mit der Message nichts anfangen, wenn es z.b. ein Reconnect in 5 min versuchen soll bei einer NoConnectionException.
 

Marco13

Top Contributor
Die Methode müßte dann aber
Code:
void method() [b]throws Exception[/b]
heißen, und jeder müßte sich um "irgendwas" kümmern, was da passieren kann. Was soll man als Begründung in den Kommentar schreiben?
Java:
...
 * @throws Exception If something goes wrong. You should better catch and ignore this.
 */

Um dem Benutzer mitzuteilen, dass etwas schief gegangen ist, könnte man ja auch
Code:
System.out.println("Ooops");
System.exit(-666);
machen :D

Es gibt außerdem einige Gute gründe, warum man nur RuntimeException verwenden (bzw. davon erben) sollte, und nicht Exception...
 
G

Gast2

Gast
Trotzdem verstehe ich dann nicht wirklich, wofür man eine eigene Exception Klasse definiert.
na in Plugins zum Beispiel

wenn Du eine Plugin-Methode aufrufst, kann irgendwo (in den Tiefen des Plugin-Universums) eine Exception kommen ... jetzt kann natürlich das Plugin die Exception behandeln - oder nicht ... wenn das Plugin die Exception behandelt, kann es eine neue neue Exception werfen (z.B. PluginException) oder normal weiter verfahren ... mit der PluginException kann das Plugin dem hauptprogramm Signalisieren "ich hatte ein Problem - ist jetzt aber gelöst" ... fliegt aber im Plugin eine "unerwartete" Exception (NullPointerException/Division durch 0) - wird das nicht behandelt

unterm Strich kommen die Exception im hauptprogramm an bei einer PluginException kann das Hauptprogramm den Benutzer über den Fehler informieren ... bei anderen Exception (die nicht von PluginException erben) kann das Hauptprogramm das Plugin generell blockieren

Calculon - All My Plugins - das zweite Plugin anschauen ... da habe ich es auch kurz angerissen

hand, mogel
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
F Sinn der SuppressWarnings("unused")-Annotation Java Basics - Anfänger-Themen 5
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays? Java Basics - Anfänger-Themen 11
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
B Eigener Validierungseditor? Java Basics - Anfänger-Themen 3
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
Bluedaishi Jar mit eigener JRE Java Basics - Anfänger-Themen 7
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
J Threads Problem mit eigener ArrayList Java Basics - Anfänger-Themen 2
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
A Input/Output Datenströme schließen in eigener Methode Java Basics - Anfänger-Themen 5
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
M Messandwendung nach Zeit und eigener Eingabe Java Basics - Anfänger-Themen 4
N Schlüsselworte Bubble Sort nach eigener Ordnung Java Basics - Anfänger-Themen 8
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
Q ArrayList mit eigener Klasse in Java sotieren Java Basics - Anfänger-Themen 2
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
L Eigener FilterReader Java Basics - Anfänger-Themen 12
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
M import von eigener Klasse Java Basics - Anfänger-Themen 12
P ArrayList aus eigener Klasse "überschreibt" Werte nicht Java Basics - Anfänger-Themen 4
M xPos und yPos eigener Klassen geben lassen Java Basics - Anfänger-Themen 3
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
S [JUnit] eigener Testsuite Runner + Ausgabe Java Basics - Anfänger-Themen 6
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
B Datentypen Probleme mit eigenem Get() bei eigener HashMap Java Basics - Anfänger-Themen 6
B OOP Eigener Event-Listener erstellen Java Basics - Anfänger-Themen 4
G Datentypen "Liste" eigener Objekte durchsuchen Java Basics - Anfänger-Themen 6
S mit eigener Klasse JTextField ändern Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
B Ordner öffnen (eigener Dateibrowser) Java Basics - Anfänger-Themen 8
B Eigener Webserver + Eigener Webbrowser Java Basics - Anfänger-Themen 7
I eigener "Abstandshalter" vs. LayoutManager Java Basics - Anfänger-Themen 6
X eigener Mergesort auf generischen Typen mit Comparator Java Basics - Anfänger-Themen 6
D Container mit eigener Klasse Java Basics - Anfänger-Themen 5
B Verwenden eigener Object-Klassen Java Basics - Anfänger-Themen 9
H Eigener Button Java Basics - Anfänger-Themen 2
M Eigener Iterator für LinkedList Java Basics - Anfänger-Themen 20
I Java eigener MSN Messenger schreiben Java Basics - Anfänger-Themen 3
R Event in eigener Klasse implementieren ? Java Basics - Anfänger-Themen 8
G Fortlaufende Aktualisierung bei eigener Klasse Java Basics - Anfänger-Themen 2
G IOException Problem in eigener Klasse Java Basics - Anfänger-Themen 8
B Import Problem mit eigener Klasse. Java Basics - Anfänger-Themen 8
G Eigener Parser Java Basics - Anfänger-Themen 4
T Problem mit eigener Klasse Java Basics - Anfänger-Themen 7
A eigener Explorer via Java? Java Basics - Anfänger-Themen 9
D Thread und Process Kommunikation bei eigener Console Java Basics - Anfänger-Themen 2
T Öffnen externer Datei als eigener Prozess Java Basics - Anfänger-Themen 8
G Datei aus eigener JAR-Datei verwende Java Basics - Anfänger-Themen 2
N Porblem mit dem Importieren eigener Pakete Java Basics - Anfänger-Themen 4
T ActionListener in eigener Klasse Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben