class Girokonto
{
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
int kontostand;
int kontonummer;
Girokonto(int startbetrag, int kontonummer)
{
this.kontostand=startbetrag;
this.kontonummer=kontonummer;
}
Girokonto()
{}
void einzahlen(int betrag)
{
this.kontostand=this.kontostand+betrag;
this.printSaldo();
}
void kontorename()
{
System.out.println("Wie soll die neue Kontonummer heißen?");
try {
this.kontonummer=Integer.parseInt(din.readLine());
}
[b]catch(IOException)
{
this.kontorename();
}[/b]
}
void auszahlen(int abhebebetrag)
{
this.kontostand=this.kontostand-abhebebetrag;
}
void printSaldo()
{
System.out.print("Der Kontostand beträgt: "+this.kontostand+ " Konto: "+this.kontonummer+"\n");
}
}
Hier das Hauptprogramm:
Code:
import java.io.*;
public class Hauptprogramm
{
public static void main (String args[]) throws IOException
{
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
Girokonto girokonto1 = new Girokonto(100,4179255);
Sparkonto spar1 = new Sparkonto(100,4179256);
girokonto1.einzahlen(200);
girokonto1.kontorename();
spar1.abheben(102);
spar1.einzahlen(12888);
spar1.kontorename();
}
}
Was mache ich falsch, damit man bei Kontonummer nur Zahlen eintippen darf?
Strange, es tut immernoch nicht guckt mal den ganzen Code an, vielleicht noch irgendwo was falsch??
Das ist die Fehlermeldung:
Code:
java.lang.Error: Unresolved compilation problem:
Unhandled exception type IOException
Der Kontostand beträgt: 300 Konto: 4179255
at Girokonto.kontorename(Girokonto.java:29)
at Hauptprogramm.main(Hauptprogramm.java:14)
Exception in thread "main"
Code:
import java.io.*;
class Girokonto
{
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
int kontostand;
int kontonummer;
Girokonto(int startbetrag, int kontonummer)
{
this.kontostand=startbetrag;
this.kontonummer=kontonummer;
}
Girokonto()
{}
void einzahlen(int betrag)
{
this.kontostand=this.kontostand+betrag;
this.printSaldo();
}
void kontorename()
{
System.out.println("Wie soll die neue Kontonummer heißen?");
try {
this.kontonummer=Integer.parseInt(din.readLine());
this.printSaldo();
}
catch(NumberFormatException e)
{
this.kontorename();
}
}
void auszahlen(int abhebebetrag)
{
this.kontostand=this.kontostand-abhebebetrag;
}
void printSaldo()
{
System.out.print("Der Kontostand beträgt: "+this.kontostand+ " Konto: "+this.kontonummer+"\n");
}
}
Code:
class Sparkonto extends Girokonto
{
void abheben(int betrag)
{
if(this.kontostand<betrag)
{
System.out.println("Abheben leider unmöglich! \n(Sparkonto können nur im Plus geführt werden.)");
}
else
{
this.kontostand=this.kontostand-betrag;
this.printSaldo();
}
}
Sparkonto(int startbetrag, int kontonummer)
{
super(startbetrag,kontonummer);
}
Sparkonto()
{
super();
}
}
Code:
import java.io.*;
public class Hauptprogramm
{
public static void main (String args[]) throws IOException
{
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
Girokonto girokonto1 = new Girokonto(100,4179255);
Sparkonto spar1 = new Sparkonto(100,4179256);
girokonto1.einzahlen(200);
girokonto1.kontorename();
spar1.abheben(102);
spar1.einzahlen(12888);
spar1.kontorename();
}
}
Zeile 29 wird markiert:
Unhandeld Exception Type IOException
was sagt wohl "Unhandeld Exception Type IOException" ? wie wärs "Unbehandelter Fehler vom Typ IOException", ergo was muss für ein Typ in der catch Anweisung.
wenn du wirklich alles versucht hast, dann schlage nochmal dein JavaBuch auf Seite 1 auf....
Ich brauche doch nur eine Exception abfangen, damit ich heute nochmal fertig werde schreibt bitte den Code einfach um sonst sitzen wir noch morgen hier:
import java.io.*;
class Girokonto
{
BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
int kontostand;
int kontonummer;
Girokonto(int startbetrag, int kontonummer)
{
this.kontostand=startbetrag;
this.kontonummer=kontonummer;
}
So tuts eben nicht, dass hatte ich auch schon , wenns so easy wäre..
Code:
Der Kontostand beträgt: 300 Konto: 4179255
Wie soll die neue Kontonummer heißen?
f
java.lang.NumberFormatException: For input string: "f"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Girokonto.kontorename(Girokonto.java:29)
at Hauptprogramm.main(Hauptprogramm.java:14)
So sieht die Methode aktuell aus:
Code:
void kontorename()
{
System.out.println("Wie soll die neue Kontonummer heißen?");
try {
this.kontonummer=Integer.parseInt(din.readLine());
this.printSaldo();
}
catch(IOException ioe)
{
this.kontorename();
}
}
Es läuft zwar, abbber dennoch kommt das noch die o.g Fehlermeldung.
Gruß, dennoch bisher danke für Eure Bemühen. @Wildcard: Statt immer von oben herab zu kommen, poste doch einfach die Zeile und gut ist, na wie wärs?
Alle geben tolle Ratschläge, die entweder sich überhaupt so gar nicht einfügen lassen oder keifen rum was sie schon erzählt haben und dabei läuft es noch nichtmal.
So war es super, ebend gepostet zack fertig.
Das Objekt e. gab es zwar nicht aber es löppt..
Code:
catch(IOException ioe)
{
System.out.println( "Sorry, der Stream ist kaputt!");
}
catch( NumberFormatException ex ){
System.out.println( "Zu doof eine Zahl einzutippen oder was? " + ex.getMessage() );
}
Mhm aber kannste dazu ebend noch was sagen, nur mit der unteren catch Ding läufts nicht und ich weiss noch nicht ganz wieso?
Wie du ja selbst sagst verstehst du nichts von ExceptionHandling.
Warum denkst du also du kannst Illuvatar belehren wenn schon ein einfaches Try&Succeed dir gezeigt hätte das Illuvatar recht hat.
Um wieder 'von oben herab zu kommen' :wink::
Lies ein Buch.
Einen Java-Kurs wird dir hier niemand geben.
@ven000m: so läuft das hier aber normalerweise nicht, klar sagt Code manchmal mehr aus also ewige Disskusionen, aber einfach seinen Code hier zu posten und die anderen aufzufordern diesen zu korrigieren ist nicht im Intresse des Erfinders. Hier geht es grundsächlich um Verständisprobleme von Java nicht um jemanden den Code zuschreiben oder umzuschreiben.
Deshalb auch die Auffoderung zum Mitdenken - aber wenn du keine Lust hast mitzudenken und dich eh nur jemand zu Java zwingt benutze bitte den Hausaufgaben Bereich.
1) es heisst methode
2) wenn beni kein try...catch drin gehabt hätte , so hätte er noch spezifizieren müssen das die methode möglicherweise eine IOException schmeisst , sprich: throws IOException, in dem Fall hat er es aber in nem try...catch gehabt.....
Alle geben tolle Ratschläge, die entweder sich überhaupt so gar nicht einfügen lassen oder keifen rum was sie schon erzählt haben und dabei läuft es noch nichtmal.
wir sind hier um die was beizubringen und nicht dir den Lolli in den Mund zu stecken... du sollst hier was mitbekommen warum und wieso etwas zu tun ist und nicht blind dann einen Code zu kopieren ! wie willst du da was lernen ?
So wette ich mit dir kommt bald deine nächste Frage wo wir nur schnell den Code posten sollen, weil ja die Abgabe schon morgen ist....
mannomann - les dir die tipps von oben durch, korrigiere nicht Leute die mehr Ahung haben und dann macht das Lernen auch Spaß !
Dieses Thema ging mir schon seid ner Weile auf die nerven. ven000m, wenn du zu faul bist die beiträge aufmerksam zu lesen, zu faul bist die fehlermeldungen zu lesen, zu faul bist auch nur IRGENDETWAS zu lesen, dann können und wollen wir dir auch nicht helfen.
Alle geben tolle Ratschläge, die entweder sich überhaupt so gar nicht einfügen lassen oder keifen rum was sie schon erzählt haben und dabei läuft es noch nichtmal.
Es waren ALLES korrekte und gute Ratschläge. Das einzige Problem ist, dass du zu unfähig bist die Sachen einzubauen, und denkst dass du immer schön mit copy&paste zurecht kommst
ex ist scheinbar ganz spezielle geworfene Ausnahme die man abfangen muss.
ich denke die Frage ist beantwortet und bevor ich das geflame losgeht....
venoom - wir helfen dir gerne hier und sind für jede Frage offen, doch verlangen wir ein bisschen mitdenken und respekt und nicht ein einfaches "Manno - postet einfach den Code".