Hi!
Seit diesem Schuljarh bin ich in einer HTL für EDV & Programmierung. In der Ersten lernen wir noch Java. Da ich aber unter ein paar anderen ziemlich vorauslerne, will ich nun eine IOException-Prüfung machen. Wer nicht weiß, was ich meine: Wenn der Benutzer bei einem Scanner statt Zahlen eine Zeichenkette eingibt, soll das Programm fortlaufen, mit der Meldung "Fehler! Es müssen ganze nicht-dezimal-Zahlen eingegeben werden!" anstatt, dass das Programm abstürtzt man
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Rechteck.main(Rechteck.java:28)
...liest.
Ich hab schon gegoogelt und einige Beispiele angeschaut, nur meldet mir mein Compiler dauernd Fehler.[/code]
Grüzze, Mok
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
ZeHa hat geschrieben:Weißt Du wie ein try-catch-Block funktioniert?
ich glaub das Emoticon sagt schon alles.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
try {
// Code, der einen Fehler auswerfen könnte
} catch (IOException e) {
// Wenn in obigem Code eine IOException geflogen ist,
// dann führe diesen Code aus.
}
Wenn du allgemein statt 'IOException' nur 'Exception' schreibst, werden alle
auftretbaren Fehler gefangen und der entsprechende Code im 'catch'-Block
ausgeführt.
Im 'catch'-Block kannst du den Fehler 'e' dann auch weiterverarbeiten,
auswerten oder den Fehlertext normal über die Konsole ausgeben.
Kann man gewissermaßen auch mit dem OnError-Zeug aus PureBasic vergleichen... sprich, wenn ein Fehler auftritt (on error), dann springt er (goto) zum Catch-Block.
ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
try {
// Code, der einen Fehler auswerfen könnte
} catch (IOException e) {
// Wenn in obigem Code eine IOException geflogen ist,
// dann führe diesen Code aus.
}
Wenn du allgemein statt 'IOException' nur 'Exception' schreibst, werden alle
auftretbaren Fehler gefangen und der entsprechende Code im 'catch'-Block
ausgeführt.
Im 'catch'-Block kannst du den Fehler 'e' dann auch weiterverarbeiten,
auswerten oder den Fehlertext normal über die Konsole ausgeben.
Und wo schreib ich dann den restlichen Code hin?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Welcher restliche Code?
Du schreibst im 'try'-Block den Code, der einen Fehler werfen kann, und den
restlichen Code, schreibst du je nachdem direkt mit in den 'try'-Block, oder
hinter das gesamte Konstrukt.
Muss ich die Deklarationen (int, boolean, float etc.) außerhalb schreiben?
Und wofür steht e
Und wie kann ich das Zeugs im TRY-Block nochmals ausführen?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
import java.util.Scanner;
import java.io.IOException;
public class Eratosthenes {
public static void main (String[] args) {
try {
int n;
boolean[] istPrim;
Scanner eingabe = new Scanner(System.in);
System.out.print("Wie weit sollen die Primzahlen berechnet werden? ");
n = eingabe.nextInt();
} catch (IOException e) {
System.out.print("Fehler bei Eingabe!");
}
}
}
Selbst wenn ich public static void main (String[] args) throwsIOException { schreibe bekomm ich folgende Fehlermeldung:
exception java.io.IOException is never thrown in body of corresponding try statement
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl