Forum: PC-Programmierung hilfe bei java programm


von anfänger (Gast)


Angehängte Dateien:

Lesenswert?

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

von Markus V. (Gast)


Lesenswert?

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

von anfänger (Gast)


Lesenswert?

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

von Java (Gast)


Lesenswert?

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.

von anfänger (Gast)


Lesenswert?

das hab ich schon versucht, aber es kommt wieder dieselbe fehlermeldung, 
trotzdem danke

von Markus V. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.