Warum ist der catch-Block nicht erreichbar ?

lalas

Mitglied
Hallo,

stehe grad auf dem Schlauch, ich habe diese Methode:
Java:
	public String delfile (String filename) {
		
		File temp = new File(filename);
		
		//if (temp.exists() == false) return ("ERROR: File does not exist");
				
		boolean b = temp.exists();
		
		if (b == true) {
	        
			try {
	            temp.delete();
	            return ("File was deleted");
	        }
	        catch (IOException e) {
	            return ("ERROR: "+e);
	        }
	    }
		else return ("ERROR: File not found");

Und Eclipse sagt mir, dass der catch-block nicht erreichbar wäre und somit die exception niemals geworfen würde.
Was übersehe ich hier ?
 

Kevin94

Top Contributor
Du hast dir die Antwort auf deine Frage doch schon selber geschrieben. Laut den Docs wirft delete nur eine SecurityException, die eine RuntimeException ist, und somit nicht abgefangen werden muss.
Und anstatt der IOException gibt es den Rückgabewert, um den Erfolg der Operation abzuprüfen.

Die Rückmeldungen die die Klasse Files über die Exceptions gibt, sind allerdings um einiges genauer, was das Programmieren um einiges einfacher und das Ergebnis sicherer macht.
 

lalas

Mitglied
Danke für die Hinweise, bin gestern abend nicht mehr zum testen gekommen.

Kann ich denn FILE komplett durch FILES ersetzen oder stosse ich dann irgendwo mal auf Probleme ?

Ich habe nämlich gelesen, dass die Methode Paths.toFile (welche ich ja bräuchte um wieder ein FILE-objekt zu erzeugen) nicht unbedingt ein FILE-objekt erzeugt welches Kompatibel zur echten Datei sei.

Würde doch bedeuten, wenn ich jetzt Methoden unter Nutzung der FILE-Klasse schreibe und dann FILES mit einbinde, ich ggf. inkompatible Objekte generiere ?

Also wie wäre der "best practices" ? Nur FILES (oder FILE) benutzen oder ist man sowieso gezwungen beide Klassen zu nutzen ?
 
T

tröööt

Gast
wenn du die klassen erstmal richtig schreiben würdest ... nämlich File und Files ... dann könnte man weiter reden ... denn FILE bzw FILES wären konstanten ... > siehe coding conventions

zum topic : File.delete() returned einen bool ... wirft aber keine explizite exception ...

zur SecurityException : wird eigentlich grundlegend von allen I/O-klassen und -methoden geworfen wenn eine aktion nicht zulässig ist ... z.b. in nem Applet oder WebStart-app

und ob man nur File (IO) nutzt ... oder nur Files (NIO.2) ... naja ... ist ne design-entscheidung ... aber man sollte sich für eines entscheiden ...

wichtig : NIO.2 Files setzt Java 7 vorraus
 

lalas

Mitglied
Ich möchte nur vermeiden jetzt allzuviele Methoden zu schreiben (mit Nutzung von "File") um dann 2 Wochen später festzustellen, dass "Files" besser gewesen wäre.

Habe dann noch dieses Zitat gefunden, welches es vermutlich trifft:

(von http://openbook.galileocomputing.de/javainsel/javainsel_15_003.html):

Das macht die »alte« File-Klasse eigentlich überflüssig, aber vermutlich scheut sich Oracle davor, ein @Deprecated an die Klasse zu setzen, denn sonst würden plötzlich riesige Mengen Quellcode in vielen Programmen markiert.

Ich werde also auf "Files" umstellen und mich damit auseinandersetzen.

Danke für die Meinungen :)
 

Suinos

Bekanntes Mitglied
Die Klasse Files (Java Platform SE 7 ) selber enthält nur statische Hilfsmethoden, welche alle auf oder mit der neuen Klasse Path (Java Platform SE 7 ) arbeiten.
Deine Entscheidung ist also nicht zwischen
Code:
FILE
oder
Code:
FILES
, sondern Path (Java Platform SE 7 ) oder File (Java Platform SE 7 ).

Ich persönlich würde die neuen NIO Klassen nehmen, falls du Java 7 verwenden darfst.
Sie haben nicht umsonst den ganzen Krempel nochmals geschrieben, anstelle einfach die alte zu verbessern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Code in Try-Catch Block wird nicht komplett ausgeführt Java Basics - Anfänger-Themen 5
A Nicht zu findender Fehler in einem try/catch Block Java Basics - Anfänger-Themen 6
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
B Try-Catch Block Java Basics - Anfänger-Themen 3
F Mehrere Exceptions in einem Catch-Block abfangen Java Basics - Anfänger-Themen 12
E Buchstaben verhindern / Try & Catch Block Java Basics - Anfänger-Themen 3
N Catch Block in Try erzwingen Java Basics - Anfänger-Themen 14
E Problem mit for schleife/ try-catch block Java Basics - Anfänger-Themen 7
N try and catch block in finally Java Basics - Anfänger-Themen 8
B Exception vor catch Block definieren Java Basics - Anfänger-Themen 9
V Was ist ein Try-Catch Block Java Basics - Anfänger-Themen 4
M Exception->mehrere Exceptions in einem Catch Block behand Java Basics - Anfänger-Themen 4
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
missy72 Catch Blöcke zusammenfassen Java Basics - Anfänger-Themen 6
Ostkreuz wie geht der catch? Java Basics - Anfänger-Themen 3
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
districon Try - Catch Java Basics - Anfänger-Themen 8
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
B JUnit / Exceptions/ try-catch Java Basics - Anfänger-Themen 6
B try catch finally Java Basics - Anfänger-Themen 2
H throws und try catch Java Basics - Anfänger-Themen 8
H Try Catch Throw Exception Java Basics - Anfänger-Themen 1
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
I Try-Catch innerhalb eines Catchblocks Java Basics - Anfänger-Themen 1
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
V InputMismatchException (Try and catch) Java Basics - Anfänger-Themen 10
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
TheMenox Try and Catch Java Basics - Anfänger-Themen 12
J Try Catch Java Basics - Anfänger-Themen 6
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
J Frage zum Thema Exceptions (Try/Catch) Java Basics - Anfänger-Themen 3
F try/catch Ausführungen ? Java Basics - Anfänger-Themen 3
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
Z Catch & Exceptions Java Basics - Anfänger-Themen 4
I Exception try-catch Java Basics - Anfänger-Themen 1
F try/catch - (else) Java Basics - Anfänger-Themen 11
C Problem mit try-catch in Schleife Java Basics - Anfänger-Themen 15
R Exceptions (try/catch) Java Basics - Anfänger-Themen 63
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
J Methoden try / catch exception Java Basics - Anfänger-Themen 5
S 'continue' in catch- und if-blöcken Java Basics - Anfänger-Themen 2
B Erste Schritte try-catch-Klauseln, überprüfte Ausnahmen Java Basics - Anfänger-Themen 4
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
S try-catch-finally-Problem Java Basics - Anfänger-Themen 10
xehpuk Compiler-Fehler final Variable in try-catch Wert zuweisen Java Basics - Anfänger-Themen 8
F Exceptionbehandlung --> catch/throws Java Basics - Anfänger-Themen 11
M Try und Catch Java Basics - Anfänger-Themen 5
B Fehler mit try + catch verhindern Java Basics - Anfänger-Themen 8
B Variablen Variablen in try / catch "public" machen? Java Basics - Anfänger-Themen 3
C Wiederholung von try-catch Java Basics - Anfänger-Themen 3
M exception catch falsch? Java Basics - Anfänger-Themen 11
S catch Exception erklären Java Basics - Anfänger-Themen 2
C Variable in try/catch Java Basics - Anfänger-Themen 10
B Try and Catch Java Basics - Anfänger-Themen 6
StrikeTom Ein paar(2) Fragen zu throws und try + catch Java Basics - Anfänger-Themen 6
J try und catch Java Basics - Anfänger-Themen 7
G Exceptionfreie Anweisungen in try-catch-Blöcke, Java Basics - Anfänger-Themen 6
M Frage zu try ... catch Java Basics - Anfänger-Themen 9
S NumberFormatException , mit Try/Catch? Java Basics - Anfänger-Themen 7
B Try/catch Java Basics - Anfänger-Themen 11
M Try & Catch Java Basics - Anfänger-Themen 7
M Nach catch mit der schleife weitermachen Java Basics - Anfänger-Themen 9
M try-catch, call-by-reference, Streaming und Strings Java Basics - Anfänger-Themen 10
S sauberer Stil von return Wert (try, catch, finally) Java Basics - Anfänger-Themen 9
S try-catch Java Basics - Anfänger-Themen 10
Tandibur Server führt "try-catch" nicht aus Java Basics - Anfänger-Themen 6
H Falsche Eingabe über try-catch abfangen Java Basics - Anfänger-Themen 2
I Frage zu Try - Catch - Finally Java Basics - Anfänger-Themen 10
Daniel_L Verwendung von try und catch bei exceptions Java Basics - Anfänger-Themen 7
GambaJo Wann try.catch nutzen? Java Basics - Anfänger-Themen 11
H try catch Java Basics - Anfänger-Themen 4
I double-Variable außerhalb des Try-Catch-Blocks nicht gültig Java Basics - Anfänger-Themen 2
D Catch wiederholt sich ständig Java Basics - Anfänger-Themen 2
T try-catch-finally Java Basics - Anfänger-Themen 8
G Anwendung von try-catch Java Basics - Anfänger-Themen 10
G try. catch Verwendung Java Basics - Anfänger-Themen 11
M Try-Catch-Problem Java Basics - Anfänger-Themen 4
G habe ein Catch problem Java Basics - Anfänger-Themen 7
C Nach Catch-Klausel Programm weiter laufen lassen Java Basics - Anfänger-Themen 5
B try & catch Problem mit Exception bzw String.split() Java Basics - Anfänger-Themen 5
C Frage zu try - catch (saubere Lösung?) Java Basics - Anfänger-Themen 3
G Bei catch beenden Java Basics - Anfänger-Themen 7
U catch mit finally Java Basics - Anfänger-Themen 5
C Exceptions, try, catch --> Frage Java Basics - Anfänger-Themen 7
J Try-Catch-Frage Java Basics - Anfänger-Themen 13
B catch exception funktioniert nicht! Java Basics - Anfänger-Themen 14
D Frage try and catch Java Basics - Anfänger-Themen 7
ven000m try catch - was muss bei catch rein Java Basics - Anfänger-Themen 28
G Datenbank - catch Java Basics - Anfänger-Themen 2
H Konstruktor in Methode fremder Klasse: try-catch-Problem Java Basics - Anfänger-Themen 4
M return und try-catch Java Basics - Anfänger-Themen 6
M Try . catch erzwungen? Java Basics - Anfänger-Themen 11
F eigene Exception aus try-catch werfen Java Basics - Anfänger-Themen 10
A Syntaxproblem mit try und catch Java Basics - Anfänger-Themen 3
Silver-Blue fragen zu Swing und catch Exceptions Java Basics - Anfänger-Themen 2
G return fehler bei try catch Java Basics - Anfänger-Themen 8
H try und catch Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben