gpt4 book ai didi

Java 在 if 语句处终止,退出值 0

转载 作者:行者123 更新时间:2023-12-02 07:33:24 26 4
gpt4 key购买 nike

我有一个程序,使用 while 循环从文件(有两行)读取行(条件为 bufferedReader.readLine()!=null ),分配 myJSONObject从文件中读取 JSON,然后我有一个 if 语句( if(bufferedReader.readLine()!=null&&!bufferedReader.readline.matches(DELETE_REGEX)) ,如果这是真的(即,如果我们读取的行不为空,并且我们不匹配正则表达式),则对 JSON 执行一些函数,该函数应该将新的 JSON 附加到文件中。

我在一些 try-catch block 中有这个。看起来有点像这样:

try{
openFiles;
while(buff.readLine()!=null){
try {
instatiateAndUseJSONParser;
if(bufferedReader.readLine()!=null
&&!bufferedReader.readline.matches(DELETE_REGEX))
{doSomeStuff;}
else
{continue;}
} catch (AllTheExceptions e){e.printStackTrace}
}
closeFiles;
}catch(SomeMoreExceptions e){e.printStackTrace}

当我运行时,它会到达 iff 语句,然后以退出值终止:0(程序正常关闭)

这是为什么呢?它不会接近“继续”或 catch block 。

如果我删除第二行,由于 String Reader 的第 50 行,我会收到 NullPointerException,但我没有使用 StringReader (我尝试导入它,但是 Eclipse 黄色下划线它,这没有任何改变)。调试时,弹出 StringReader.<init>(String) line: 50 的选项卡并只是说“未找到来源”。

我对 Java 还很陌生,所以我真的不知道发生了什么。任何帮助解决这个问题的帮助将不胜感激。

谢谢!

最佳答案

每次调用readLine()时,它都会读取一个新行。因此,您可以在当前代码中每次迭代读取 3 行。您应该将第一次调用的结果分配给一个变量,并使用该变量:

String line = null;
while ((line = buff.readLine()) !=null) {
try {
instatiateAndUseJSONParser;
if (line.matches(DELETE_REGEX)) {
doSomeStuff;
}
}
catch (AllTheExceptions e){
throw new RuntimeException(e);
}
}

您还应该避免吞咽异常。

关于Java 在 if 语句处终止,退出值 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12621478/

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