Exceptionklasse überschreiben

Status
Nicht offen für weitere Antworten.

Ocean-Driver

Bekanntes Mitglied
Hi,


Ich habe einige Funktionen die zum Beispiel eine FileNotFoundException werfen --> kann ich diese Klasse überschreiben?
Ich würde meine Exception gern selbst bauen, ich will jedoch nicht die Orginal FileNotFoundException abfangen und ich eine FNFException (nur als Beispiel) umwandeln --> kann ich das direkt irgendwie überschreiben?Ich arbeite mit Netbeans 6!

Danke schonmal.


gruß

ocean-driver
 
M

maki

Gast
Brauchst nicht zu überschreiben, lies dich lieber mal in Exception-Chaining ein ;)
 

quippy

Bekanntes Mitglied
maki hat gesagt.:
Brauchst nicht zu überschreiben, lies dich lieber mal in Exception-Chaining ein ;)

Obacht, das muss nicht das sein, was er will! Er möchte z.B. einen dedizierten Catch auf seine FNFException machen. Dann kann er
a) von Exception ableiten, wenn er einen Throw-Clause erzwingen will
b) von RuntimeException ableiten, wenn er das nicht will
c) von FileNotFoundException ableiten, wenn ein Catch auf "FileNotFound" seine Exception auch fangen soll

Mit Chaining könnte er sowas machen wie
Code:
throw new FileNotFoundException(new FNFException("Ups"));
machen, wobei gerade die FileNotFound genau diesen Konstruktor nicht anbietet! (jedenfalls nicht in Java5)

Außerdem würde das nicht sein Problem lösen, denn
a) kann er nicht dediziert abfangen
b) muss seine eigene neue Exception auch erst mal von was ableiten!

Zum Topic-Starter: Exceptions sind ganz normale Klassen. Ergo kannst Du mit
Code:
public class myException extends FileNotFoundException

deine eigene Exception erzeugen - die dann eben die FileNotFoundException spezialisiert.
 

Ocean-Driver

Bekanntes Mitglied
@quippy Genau so hab eich es gemacht, jedoch mit einem Catch auf FNFException (welche von FileNotFoundException abgeleitet ist) kann ich die FileNotFoundException nicht abfangen - was mache ich falsch?
 
M

maki

Gast
Er könnte doch eine RuntimeException erzeugen, die als Konstruktor parameter die FileNotFoundException bekommt ;)

IMHO sollte man sich mit eigenen Exeptions zurückhalten, klar braucht man sie manchmal, aber je weniger, desto besser, macht das ganze komplex, vor allem für neue Mitarbeiter.
 

Tobias

Top Contributor
Vor allem sind eigene Exceptions nur in den seltensten Fällen semantisch so sinnvoll, das es den Mehraufwand lohnt. Die meisten eigenen Exceptions bestehen ja doch nur aus den überschriebenen Konstruktoren der Oberklasse.

Zu Ocean-Driver: Hinweis: Deine FNFException ist eine FileNotFoundException, die FileNotFoundException aber keine FNFException. Genau wie eine Meise ein Vogel ist, aber nicht jeder Vogel eine Meise.

mpG
Tobias
 

HLX

Top Contributor
@Ocean-Driver: Du musst die Exception fangen/weiterwerfen, die in der throw-clause definiert ist, oder einer seiner Super-Klassen. Deine neue Exception ist im Prinzip nur eine Spezialisierung. Der allgemeine Fall ist damit nicht abgedeckt und gilt damit als unbehandelt. Wenn du die schmeißende Klasse selbst definiert hast, ändere die throw-clause, ansonsten musst du das abfangen oder weiterschmeißen, was man dir vor die Füße wirft.

maki hat gesagt.:
Er könnte doch eine RuntimeException erzeugen...
Auch mit Runtime-Exceptions sollte man sich zurückhalten, bzw. sie nur für einen bestimmten Zweck einsetzen. :wink:
 

Janus

Bekanntes Mitglied
eigene exceptions führen schnell zu schlecher exception semantik. mir graust es immer, wenn ich LibX verwende und jede einzelne methode deklariert, eine LibXException zu schmeissen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Simon16 compareTo Methode überschreiben Allgemeine Java-Themen 4
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
M BufferedImage toString() überschreiben Allgemeine Java-Themen 5
S Methoden Methoden überschreiben Allgemeine Java-Themen 3
J Eintrag in Datei überschreiben Allgemeine Java-Themen 6
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
M Classpath Standard Klasse überschreiben Allgemeine Java-Themen 2
A Vererbung finale Methoden überschreiben Allgemeine Java-Themen 24
S compareTo() überschreiben - Problem Allgemeine Java-Themen 8
G Tastenkombinationen überschreiben Allgemeine Java-Themen 3
D Arrays überschreiben sich Allgemeine Java-Themen 2
A ar während der Laufzeit überschreiben Allgemeine Java-Themen 20
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
Tobse Input/Output Datei Teilweise überschreiben Allgemeine Java-Themen 7
D this mit Objekt überschreiben Allgemeine Java-Themen 17
L Datei sicher löschen/mehrfach überschreiben? Allgemeine Java-Themen 2
N Datei überschreiben Allgemeine Java-Themen 23
M Swing Originaldatei wird gelöscht, anstatt mit temporärer überschreiben (Ubuntu) Allgemeine Java-Themen 9
Meldanor finalize Methode überschreiben für .close() Allgemeine Java-Themen 5
T Mit JNI finale Variablen überschreiben Allgemeine Java-Themen 14
W DefaultComboBoxModel überschreiben Allgemeine Java-Themen 2
R Dateiarbeit: In Datei weiterschreiben statt überschreiben Allgemeine Java-Themen 5
G toString() von java.io.File überschreiben Allgemeine Java-Themen 8
MQue tableChanged() überschreiben Allgemeine Java-Themen 4
D Instanzmethoden mit statischen Methoden überschreiben Allgemeine Java-Themen 8
ruutaiokwu Per Reflection membervariablen überschreiben / zuweisen / nullen Allgemeine Java-Themen 5
G Button-Array überschreiben und dem Container zufügen? Allgemeine Java-Themen 2
B in file immer 2. zeile überschreiben Allgemeine Java-Themen 8
E *.class ändern/ersetzen/überschreiben. Allgemeine Java-Themen 9
T Final Methode dennoch überschreiben! Allgemeine Java-Themen 10
G static- Methoden überschreiben Allgemeine Java-Themen 10
V Methode überschreiben -> leer lassen? Allgemeine Java-Themen 3
R toString() methode überschreiben mit rekursivem aufruf. Allgemeine Java-Themen 8
H zwei Date Variablen überschreiben sich Allgemeine Java-Themen 2
P java.util.List - Typ überschreiben Allgemeine Java-Themen 9
H Methoden überschreiben Allgemeine Java-Themen 4
André Uhres equals überschreiben Allgemeine Java-Themen 31
P Eigenschaften eines Buttons überschreiben/ändern Allgemeine Java-Themen 2
M Array nicht überschreiben? Allgemeine Java-Themen 6
A Objekt überschreiben Allgemeine Java-Themen 6
B Equals Methode überschreiben mit Array Allgemeine Java-Themen 2
N Konsolenzeile überschreiben? Allgemeine Java-Themen 6
N Java Klassen "überschreiben" Allgemeine Java-Themen 28
S java.io.InputStream.read(byte[] b) überschreiben Allgemeine Java-Themen 33
J txt löschen oder txt datei überschreiben Allgemeine Java-Themen 1
M Methode überschreiben? Allgemeine Java-Themen 11
M Mit einem Java Programm Festplatte mit 0 überschreiben Allgemeine Java-Themen 2
meez java.security Datei "überschreiben" Allgemeine Java-Themen 4
M Bean Listener hinzufügen und Methode später überschreiben Allgemeine Java-Themen 27
P Klassen überschreiben Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben