gpt4 book ai didi

java - 错误处理中的递归?

转载 作者:行者123 更新时间:2023-12-04 06:27:07 27 4
gpt4 key购买 nike

我正在编写一个返回对象的文件阅读器,我希望它在解析错误时发出警告并继续下一条记录。

下面的代码是这个的明显实现,但涉及从 catch 块内部递归。是否有任何技术或风格原因不这样做?

public RecordType nextRecord() throws IOException{
if (reader == null){
throw new IllegalStateException("Reader closed.");
}
String line = reader.readLine();
if (line == null){
return null;
}else{
try {
return parseRecord(line);
}catch (ParseException pex){
logger.warn("Record ignored due to parse error: "
+ pex.getMessage());
//Note the recursion here
return nextRecord();
}
}
}

最佳答案

我更喜欢使用循环。使用递归,你永远不知道你可以安全地走多远。

String line;
while((line = reader.readLine()) != null) {
try {
return parseRecord(line);
}catch (ParseException pex){
logger.warn("Record ignored due to parse error: " + pex);
}
}
return null;

关于java - 错误处理中的递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5911557/

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