Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » IOException

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.12.2005, 14:40 Uhr
~Tom23
Gast


void eingeben()
{
System.out.println("Bitte geben Sie eine Zahl ein die Sie schieben wollen");

try
{
inputNumber =taster.nextInt();
if(inputNumber==10)
System.exit(0);

check();
}
catch (IOException e)
{

System.out.println("HEY NICHT NERVÖS WERDEN...DAS WAR KEINE ZAHL");
System.out.println(" Probier es doch einfach nochmal");
eingeben();

}

}



Hi...

Ich habe eine Frage an Euch und zwar wegen dem Abfangen von Fehlern mit try und catch

Ich habe ein Programm geschrieben (Auschnitt oben)....

dort möchte ich einen Int wert eingeben über die Tastatur

Wenn allerdings ein character eingegben wird soll das Programm ein Fehler abfange

Ich habe es oben in dem Programmabschnitt mit try und catch versucht bekomme allerdings eine Fehermeldung...

Kann mir einer sagen warum?

Vielen Dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.12.2005, 15:26 Uhr
KaraHead



Falls eine Zahl in Stringrepräsentation nicht in eine Zahl (float oder int) umgewandelt werden kann, dann wird eine NumberFormatException geschmissen.

Ohne jetzt die Klasse taster zu kennen würde ich sagen dass du in deinem try...catch Block die Falsche Exception abfängst.

Probier's mal so:

C++:
try {
inputNumber =taster.nextInt();
if(inputNumber==10)
System.exit(0);

check();
}catch (NumberFormatException e) {

System.out.println("HEY NICHT NERVÖS WERDEN...DAS WAR KEINE ZAHL");
System.out.println(" Probier es doch einfach nochmal");
eingeben();

} catch(Exception e) {
//tue was, falls irgendein anderer Fehler auftritt
}




---Edit
Bitte Code-Tags setzten, danke.

Dieser Post wurde am 02.12.2005 um 15:27 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.12.2005, 15:58 Uhr
~Tom24
Gast


Ja das ist OK danke....funktioniert
aber irgendwie bekomme ich jetzt ne endlosschleife(hat mit meinem Programm zu tun)....
mit der ausgabe Stack overflow....istwohl eine anderer fehler....

kann es sein das ich die Eingabe

inputNumber =taster.nextInt();

irgendiwe buffern muss (wie in c++ mit fflush)
weisst du darüber was?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.12.2005, 16:55 Uhr
KaraHead



Ist taster ein Klasse von dir? Wenn ja zeig mal den Code. Liegt bestimmt am einlesen von der Konsole.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.12.2005, 17:21 Uhr
~Tom24
Gast


die Eingabe habe ich so in einem Buch gefunden:

Die Eingabe für Int Werte...

Scanner taster = new Scanner (System.in);
inputNumber =taster.nextInt();

aber ich denke auch da könnte der Fehler liegen?

Oder ist das eine unsichere Eingabe?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.12.2005, 15:31 Uhr
KaraHead



Scheint alles richtig zu sein.
Kann mir keinen Reim drauf machen.

Poste mal die ganze Klasse.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
04.12.2005, 18:14 Uhr
KaraHead



Also ein Stack Overflow ensteht nur wenn du zu viel Speicher verbrauchst wie z.B. in einer Endlosschleife.
Die Funktion eingeben() sieht in Ordnung aus. Wahrscheinlich steckt die Funktion bei dir in einer Endlosschleife.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: