hilfe bei java programm

Gast #1073292
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
Angehängte Dateien:
Gast
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
Gast
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
Gast
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.
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.