gpt4 book ai didi

java - 使用streamtokenizer导致EOL异常?

转载 作者:行者123 更新时间:2023-12-01 14:07:11 25 4
gpt4 key购买 nike

我正在编写一个小型计算器,它使用streamtokenizer以 token 形式处理输入。但是,当捕获异常时,我希望它忽略所有其他异常,或者移至 EOL。我不能只是中断,因为程序并不意味着崩溃,只是忽略该输入的所有后续异常。

因此,我要么尝试设置异常以忽略第一个异常之后的每个异常,要么尝试让 Streamtokenizer 在捕获异常后移至 EOL。

无论哪种方式,我都不知道如何使这两个选项中的任何一个发挥作用。

public static void main(String[] args) throws customException {
Calculator casio = new Calculator(new Stokenizer());
while (true) {
try {
casio.statement();
}
} catch (customException error) {
System.out.println(syntaxError.getMessage());
}
}
}

流分词器文档位于 http://docs.oracle.com/javase/7/docs/api/java/io/StreamTokenizer.html

最佳答案

您可以尝试类似的操作来转到行尾:

public void statement() throws IOException {
int tt = StreamTokenizer.TT_EOF;
try {
while((tt = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
// ...
}
} catch (CustomException syntaxError) {
System.out.println(syntaxError.getMessage());
gotoEOL();
}
}

private void gotoEOL() {
try {
while(tokenizer.nextToken() != StreamTokenizer.TT_EOL)
;
} catch (IOException e) {
e.printStackTrace();
}
}

关于java - 使用streamtokenizer导致EOL异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18813822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com