hi! bin totaler programmierneuling und brauche hilfe! kompilieren lässt es sich, aber beim ausführen erhalte ich folgende Fehlermeldung 1 3 4 4 5 6 - + * s / Exception in thread "main" UpnException: ? at Upn.operator(Upn.java:25) at Main.main(Main.java:21) kann mir wer sagen was ich falsch gemacht habe bzw. wie es richtig stelle? danke
Hi anfänger! Dein Fehler liegt in der Datei Upn.java, Zeile 46. Der Operator 's' legt kein Ergebnis auf dem Stack ab. Dadurch kommt es beim Ausführen des Operators '/' zu einer Exception, es fehlt ein Operand auf dem Stack. Grüße aus KA Markus
HI! der operator s soll die 2 obersten elemnte des stack tauschen mein fehler hängt mit den InputMismatch und NoSuchElement Exceptions zusammen,(denke ich) da die upn-exc in main gefangen und die message ausgegeben werden soll. die exceptions wrden aber bei mir geworfen... weisst du wie ich das ändern kann? Laaaaaaaaanger Taaaag! lg
Einfach
1 | public static void main ( String ... args ) throws UpnException { |
statt
1 | public static void main ( String ... args ) throws UpnException, InputMismatchException, NoSuchElementException{ |
schreiben. Damit greift dein Catch und es kommt nur die UpnException nach außen.
das hab ich schon versucht, aber es kommt wieder dieselbe fehlermeldung, trotzdem danke
Moin anfänger! Ich hatte gestern leider keine Zeit mehr, Dir zu antworten... Leider unterliegst Du (und auch Java (Gast))einem gewaltigen Irrtum: In main werden lediglich die Exceptions InputMismatchException und NoSuchElementException behandelt (gefangen). Der catch-Block für die UpnException fehlt.
1 | ...
|
2 | catch (NoSuchElementException ex){ |
3 | throw new UpnException("FALSCHE EINGABE"); |
4 | }
|
5 | catch (UpnException ex){ |
6 | //Behandlung der Exception...
|
7 | }
|
8 | ...
|
Die Zeile
1 | public static void main ( String ... args ) throws UpnException, InputMismatchException, NoSuchElementException |
teilt dem Compiler mit, daß ein Aufrufer der Methode main diese Exceptions behandeln sollte (bei Exceptions, die von RuntimeException ableiten) bzw. behandeln muß (bei Exceptions, die von Exception ableiten). Dies ist bei einem main aber nicht wirklich sinnvoll (die Exceptions können von der JVM lediglich in Form einer Ausgabe der Exception auf die Console "behandelt" werden). Dir ist auch klar, daß durch die Lage der while-Schelife im try-Block Dein Programm beim Auftreten der ersten Exception beendet wird? Wenn das Programm weiter laufen soll, muß try-catch in die while-Schleifen hinein. Gruß aus KA Markus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.