Compiler-Fehler unreachable statement

P

Pierre

Gast
Hallo,

Da ich noch nicht viel über die Java-Programmierung kenne, würde ich gerne eine Frage stellen.
Im folgenden Code sollte normaler weise am Schluss vor dem catch block " temp_in.close(); " stehen, ohne diesen funktionierts, mit der Anweisung aber nicht, woran könnte das liegen?

Java:
import java.io.*;
public class read_celsius
{
  public static void main(String[] args)
{
     double temp;
     try
{
         // Streams fuer AUsgabe in Datei erzeugen
         FileInputStream temp_dat = new FileInputStream ("temp.dat");
         DataInputStream temp_in = new DataInputStream(temp_dat);
         while (true)
{
            temp = temp_in.readDouble() + 273.15;
            System.out.println(temp+" Grad Kelvin");
}
         
}
     catch (EOFException ende)
{
         System.out.println("Das war's!");
}
     catch (IOException e)
{
         e.printStackTrace();
}
}
}


Mit code bekomme ich diese Fehlermeldung.

Java:
C:\Streams>javac read_celsius.java
read_celsius.java:18: unreachable statement
         temp_in.close();
         ^
1 error

Vielen Dank
P.
 

kirax

Bekanntes Mitglied
Java:
import java.io.*;
public class read_celsius
{
  public static void main(String[] args)
{
     double temp;
     try
{
         // Streams fuer AUsgabe in Datei erzeugen
         FileInputStream temp_dat = new FileInputStream ("temp.dat");
         DataInputStream temp_in = new DataInputStream(temp_dat);
         while (true)
{
            temp = temp_in.readDouble() + 273.15;
            System.out.println(temp+" Grad Kelvin");
}
         
}
     catch (EOFException ende)
{
         System.out.println("Das war's!");
}
     catch (IOException e)
{
         e.printStackTrace();
}
}
}
Gewöhn dir bitte mal div. Conventions an :noe:

Leider ging nicht eindeutig aus deinem Schnipsel hervor, wo das close stehen soll. Ich vermute mal so?

Java:
try {
  ...  
  while (true) {
    temp = temp_in.readDouble() + 273.15;
    System.out.println(temp+" Grad Kelvin");
  }
  temp_in.close();
}
catch ...

Das ist logisch, dass er hier den Fehler wirft.
Es liegt an der Schleife. Die wird immer ausgeführt ([c]while (true)[/c]) und deswegen kommt er von sich ohnehin nicht aus der Schleife raus, um den Stream zu schließen ([c]unreachable code[/c]). Außerdem sind Endlosschleifen kein guter Stil (irgendwann musst du da ja wieder raus).

Ich weiß nicht ob das deinem Problem hilft, aber du könntest es in einen [c]finally[/c] Block setzen:

Java:
try {
  ...  
  while (true) {
    temp = temp_in.readDouble() + 273.15;
    System.out.println(temp+" Grad Kelvin");
  }
}
catch ...
catch ...
finally {
  temp_in.close();
}
 
P

Pierre

Gast
Danke für die Antwort, mit finally hab ich's probiert, funktioniert aber nicht.
Die stelle an der du close() vermutet hast, stimmt. Der code funktioniert auch ohne dieses close(), da es ja die exception gibt.
Die Frage war eigentlich weil in der Übung dieses close() mit im code war. Im code von Datendatei-schreiben war ein close() auch drin, und es funktioniert mit oder ohne. Also schon gut, belassens wir hier.

Vielen Dank
P.
 

XHelp

Top Contributor
close() macht in diesem Beispiel kein Sinn. Etweder fliegt beim Erstellen des Streams eine Exception, dann gibt es auch nicht, was man schließen könnte, oder es kommt zu einer Endlosschleife und man kommt die dazu etwas schließen zu könne.

Nachtrag: Man sollte vllt erst nachdenken :oops: readDouble schmeißt ja auch eine Exception...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
P OOP unreachable statement - Fehler? Java Basics - Anfänger-Themen 3
J Exception unreachable Java Basics - Anfänger-Themen 12
M Variablen Unreachable code Java Basics - Anfänger-Themen 7
W Unreachable Statment-Fehler Java Basics - Anfänger-Themen 1
I Unreachable Code Java Basics - Anfänger-Themen 2
N Error "unreachable Code" Java Basics - Anfänger-Themen 7
B unreachable code Java Basics - Anfänger-Themen 3
A try catch UNREACHABLE CODE Java Basics - Anfänger-Themen 3
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
A switch statement Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
freudianslip if-Statement mit mehreren Zahlenwerten Java Basics - Anfänger-Themen 4
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
J Missing Return Statement Java Basics - Anfänger-Themen 11
J if or statement? Java Basics - Anfänger-Themen 2
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
T Not a Statement/Illegal Start of expression bei for Anweisung Java Basics - Anfänger-Themen 6
L Variable in If-Statement initialisieren Java Basics - Anfänger-Themen 4
B Problem bei switch statement Java Basics - Anfänger-Themen 4
M Return statement Java Basics - Anfänger-Themen 4
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
K Input/Output If-Statement wird übersprugen Java Basics - Anfänger-Themen 5
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
B Not a statement error Java Basics - Anfänger-Themen 2
P fibonacci - do while Statement Logik Fehler Java Basics - Anfänger-Themen 5
T Problem im If-Else-Statement Java Basics - Anfänger-Themen 4
SexyPenny90 Why "Empty Statement"?!? Java Basics - Anfänger-Themen 2
O IF-Statement wird nicht ausgeführt Java Basics - Anfänger-Themen 7
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M SQL Statement Problem Java Basics - Anfänger-Themen 22
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
I Problem mit H2-DB Insert-Statement Java Basics - Anfänger-Themen 3
A Assert statement Java Basics - Anfänger-Themen 3
M missing return statement?! Java Basics - Anfänger-Themen 4
J Prepared Statement Out of BondsException Java Basics - Anfänger-Themen 4
A Missing return-Statement Java Basics - Anfänger-Themen 9
T missing return statement Java Basics - Anfänger-Themen 36
E missing return statement Java Basics - Anfänger-Themen 6
H not a statement meldungen Java Basics - Anfänger-Themen 12
B Error:not a statement FEHLER bei * Java Basics - Anfänger-Themen 3
F import Statement für Klassen die dem default Package zugeordnet sind? Java Basics - Anfänger-Themen 2
B Not a Statement Problem Java Basics - Anfänger-Themen 8
S Not a Statement? Java Basics - Anfänger-Themen 10
C missing return statement Java Basics - Anfänger-Themen 5
K SQL Statement formatieren + Swingzeug auslagern Java Basics - Anfänger-Themen 18
dognose missing Return Statement Java Basics - Anfänger-Themen 4
H Funktion erkennt das return-statement nicht Java Basics - Anfänger-Themen 12
G [Hibernate] Aus SQL-Statement Entities erzeugen Java Basics - Anfänger-Themen 2
M Callable Statement mit Variablen Java Basics - Anfänger-Themen 8
A SQL Create Table Statement Java Basics - Anfänger-Themen 19
T if-then statement soll nur Zahlen zulassen Java Basics - Anfänger-Themen 12
G Missing return Statement Java Basics - Anfänger-Themen 2
S prepared statement delete Java Basics - Anfänger-Themen 5
J Statement an MySQL Datenbank schicken Java Basics - Anfänger-Themen 4
L INSERT Statement geht nicht HILFE! Java Basics - Anfänger-Themen 2
I call to super must be first statement in constructor Java Basics - Anfänger-Themen 3
L IF Bedingung in SELECT Statement? Java Basics - Anfänger-Themen 3
R "missing return statement"? Java Basics - Anfänger-Themen 2
S prepared statement Java Basics - Anfänger-Themen 10
G SQL Statement Java Basics - Anfänger-Themen 4
J Variable Werte in einem SQL Statement? Java Basics - Anfänger-Themen 8
G Inhalt Textfield in SQL Statement klappt nicht. Java Basics - Anfänger-Themen 2
F Missung Return Statement Java Basics - Anfänger-Themen 10
G Button und SQL-Statement ausführen Java Basics - Anfänger-Themen 6
H Variable zuweisung in einem If-Statement Java Basics - Anfänger-Themen 3
J return- Statement Java Basics - Anfänger-Themen 3
G missing return statement Java Basics - Anfänger-Themen 5
S Problem mit if-Statement Java Basics - Anfänger-Themen 5
G Array und switch-Statement Java Basics - Anfänger-Themen 4
R kurzes if-then-else statement Java Basics - Anfänger-Themen 8
M missing return statement Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben