Java Antlr4 ParsecancellationException ignoriertJava

Java-Forum
Anonymous
 Java Antlr4 ParsecancellationException ignoriert

Post by Anonymous »

Ich arbeite an einem Mini -Compiler -Projekt und versuchte, eine ParsecancellationException in eine Parselistener -Klasse oder eine ähnliche Ausnahme zu werfen, um die Parsen bei der Begegnung auf einen tödlichen Fehler zu stoppen, dies wird jedoch einfach ignoriert Während der Ausführung. wird tatsächlich geworfen, obwohl es ignoriert zu werden scheint. Ich habe auch versucht, RunTimeExceptions stattzugeben. > scheint die Parsen erfolgreich einzustellen.

Code: Select all

 @Override
public void exitAddExpr(BasicLangParser.AddExprContext ctx) {
Util.Value left = stack.pop();
Util.Value right = stack.pop();

if (left.datatype==right.datatype) {
String result = switch (left.datatype) {
case INT, FLOAT -> String.valueOf((Double)left.getValue() + (Double)right.getValue());
case STRING, CHAR -> (String)left.getValue() + (String)right.getValue();
default -> throw new ParseCancellationException("Addition Error - Invalid Datatype ("+left.datatype.toString()+","+right.datatype.toString()+")");
};
stack.push(Util.Value.newValue(result));
} else {
throw new ParseCancellationException("Addition Error - Mismatched Datatypes ("+left.datatype.toString()+","+right.datatype.toString()+")");
}

super.exitAddExpr(ctx);
}

Da dieser Code tatsächlich eine Ausnahme macht . < /p>
Bearbeiten:
Ich versuche derzeit nicht, die ParsecancellationException < /code> in meinem Code vorerst zu fangen; Ich habe diese Ausnahme einfach mit dem Debugger von Intellij und der Aktivierung von Ausnahmebestandteilen erfasst.
Ich habe die Ausnahmeverbreitung in meinem Code nicht blockiert, obwohl ich mir nicht bewusst bin, ob Antlr4 dies tut, daher meine Frage. Ausnahme, wo ich versuche, eine Zeichenfolge als Doppel zu analysieren, um festzustellen, ob sie numerisch ist.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post