[JDK 1.6 & JCreator 4.5LE] Die Sache mit IOException.

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

[JDK 1.6 & JCreator 4.5LE] Die Sache mit IOException.

Beitrag von Mok »

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

Code: Alles auswählen

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
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Weißt Du wie ein try-catch-Block funktioniert?
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

ZeHa hat geschrieben:Weißt Du wie ein try-catch-Block funktioniert?
:roll: 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
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Wird hier einigermaßen gut erklärt: http://www.softwareproduction.de/progra ... _2_12.html
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Code: Alles auswählen

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.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

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.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

NicTheQuick hat geschrieben:

Code: Alles auswählen

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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

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.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

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
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Beitrag von Mok »

Sorry wegen Doppelpost, aber sonst liest das keimer mehr hier!

Also, vergesst alle Fragen von mir da oben.
Was ist an diesem Code falsch?

Code: Alles auswählen

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) throws IOException { 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
Antworten