Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du deklarierst operator innerhalb vom try..catch Block, außerhalb dieses Blocks ist die Variable nicht sichtbar. Deklarier sie außerhalb des Blocks und er sollte diesbezüglich nicht mehr meckern...
Du könntest das ganze auch gleich in die try...catch vom vorherigen Block schreiben und zusammen mit dem User Input behandeln (also neben IOException noch die NumberFormatException abfangen).
Wozu das gut ist?
Falls der User was eingibt was der Compiler nicht parsen kann, z.B. er gibt für die erste Zahl "a,e2" ein oder so was....
ok, ich denke ich habe diese NumberFormatExeption jetzt gemacht. aber mal eine andere frage, ich habe jetzt ganz viele try-blöcke hinter einander... kann ich diese vielleicht auch irgendwie zusammenfassen um code zu sparen, oder um es auch übersichtlicher zumachen?
DU kannst, wenn du willst, einen großen machen, der IOException und NumberFormatException abfängt, in dem Block dann readLine() und parseDouble() entsprechend aufrufen (wie bisher)...
Btw. du solltest zumindest nen StackTrace ausgeben lassen (in catch), also z.B.
wow... ich komme grad nicht ganz mit...
das müsste dann in etwa so aussehen, oder
Code:
// Erste Zahl einlesen
System.out.println("\n\n\nBitte geben Sie die erste Zahl ein:");
try{
input=br.readLine();
zahl1=Double.parseDouble(input);
}
catch(IOException ioe){}
catch(NumberFormatException e){}
// Zweite Zahl einlesen
System.out.println("\nBitte geben Sie die zweite Zahl ein:");
try{
input=br.readLine();
zahl2=Double.parseDouble(input);
}
catch(IOException ioe){}
catch(NumberFormatException e){}
oder?
ist es egal, welchen namen ich den exception gebe?
wenn ich das programm ausführe und dann einen buchstaben statt einer zahl eingebe, dann wird die exception ausgegeben?! bei mir reagiert der gar nicht darauf...
Wenn du einen großen try..catch Block machst, dann reicht es im entsprechenden catch Block den StackTrace auszugeben. Ansonsten musst du halt in deinem zweiten try...catch Block entsprechendes ausgeben.
Du musst ja selbstverständlich das ganze auf beide Zahlen anwenden, da es keinen Sinn macht die eine Zahl zu überprüfen, die andere aber net