この例外があり、executeStatement で使用したいと考えています。どうすればいいですか?
package cn.edu.thssdb.parser;
import org.antlr.v4.runtime.BaseErrorListener;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.Recognizer;
import org.antlr.v4.runtime.misc.ParseCancellationException;
public class ThrowingErrorListener extends BaseErrorListener {
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e)
throws ParseCancellationException {
throw new ParseCancellationException("line " + line + ":" + charPositionInLine + " " + msg + '\n');
}
}
private static void executeStatement(String stmt, long sessionid) {
ExecuteStatementReq req = new ExecuteStatementReq();
req.setSessionId(sessionid);
req.setStatement(stmt);
try {
ExecuteStatementResp resp = client.executeStatement(req);
println(resp.getResult());
} catch (TException e) {
logger.error(e.getMessage());
}
}
また、TException で使用したり、ThrowingErrorListener に置き換えたりすることはできますか?