Java 防止堆栈溢出的循环逻辑
我有一个循环,它尝试对url进行三次尝试。除了内部循环之外,还有其他调用函数的方法吗。URL列表很长,我担心堆栈可能溢出。我已经努力了,这不是家庭作业。trys计数器正确递增该区域没有问题Java 防止堆栈溢出的循环逻辑,java,loops,logic,Java,Loops,Logic,我有一个循环,它尝试对url进行三次尝试。除了内部循环之外,还有其他调用函数的方法吗。URL列表很长,我担心堆栈可能溢出。我已经努力了,这不是家庭作业。trys计数器正确递增该区域没有问题 BufferedReader br = new BufferedReader(new FileReader(input)); while((line = br.readLine()) != null) { tries = 0;
BufferedReader br = new BufferedReader(new FileReader(input));
while((line = br.readLine()) != null) {
tries = 0;
theURL = line;
String escape = URLEncoder.encode(line, "UTF-8");
url = cache + escape;
while(tries < 3) {
getTimeStamp(url);
}
}
BufferedReader br=new BufferedReader(new FileReader(input));
而((line=br.readLine())!=null){
尝试=0;
URL=行;
字符串转义=urlcoder.encode(第行,“UTF-8”);
url=缓存+转义;
while(尝试<3次){
getTimeStamp(url);
}
}
你永远不会递增尝试
-你的循环是无限的
因此,它将在某个点触发一个堆栈溢出错误。您永远不会递增尝试
-而循环是无限的
因此,它将在某个点触发一个堆栈溢出错误。您永远不会递增尝试
-而循环是无限的
因此,它将在某个点触发一个堆栈溢出错误。您永远不会递增尝试
-而循环是无限的
因此,它将在某个点触发一个堆栈溢出错误。尝试在代码的另一部分的正确位置递增。@MallikKumar如果在其他地方递增,那么你的循环是无用的,如果尝试<3
(并且你的示例不是独立的),循环将永远继续下去。您应该考虑在循环范围内递增。即使在循环中递增尝试……在几百个URL之后仍然存在堆栈溢出的问题。@ MallikKumar可能是您的代码中的某个东西?GETTimePopys<代码>方法?很难知道是否与此问题或其他问题有关。如果正确递增,您认为什么会使堆栈溢出?你似乎做的不多。。。除非它是您的缓存
变量,或者是getTimestamp
所做的任何事情。简而言之,我认为您需要发布更多的代码以使事情更清楚。在代码的另一部分中,尝试在正确的位置递增。@MallikKumar如果在其他地方递增,那么您的循环是无用的,如果尝试<3
(并且您的示例不是自包含的),则循环将永远持续下去。您应该考虑在循环范围内递增。即使在循环中递增尝试……在几百个URL之后仍然存在堆栈溢出的问题。@ MallikKumar可能是您的代码中的某个东西?GETTimePopys<代码>方法?很难知道是否与此问题或其他问题有关。如果正确递增,您认为什么会使堆栈溢出?你似乎做的不多。。。除非它是您的缓存
变量,或者是getTimestamp
所做的任何事情。简而言之,我认为您需要发布更多的代码以使事情更清楚。在代码的另一部分中,尝试在正确的位置递增。@MallikKumar如果在其他地方递增,那么您的循环是无用的,如果尝试<3
(并且您的示例不是自包含的),则循环将永远持续下去。您应该考虑在循环范围内递增。即使在循环中递增尝试……在几百个URL之后仍然存在堆栈溢出的问题。@ MallikKumar可能是您的代码中的某个东西?GETTimePopys<代码>方法?很难知道是否与此问题或其他问题有关。如果正确递增,您认为什么会使堆栈溢出?你似乎做的不多。。。除非它是您的缓存
变量,或者是getTimestamp
所做的任何事情。简而言之,我认为您需要发布更多的代码以使事情更清楚。在代码的另一部分中,尝试在正确的位置递增。@MallikKumar如果在其他地方递增,那么您的循环是无用的,如果尝试<3
(并且您的示例不是自包含的),则循环将永远持续下去。您应该考虑在循环范围内递增。即使在循环中递增尝试……在几百个URL之后仍然存在堆栈溢出的问题。@ MallikKumar可能是您的代码中的某个东西?GETTimePopys<代码>方法?很难知道是否与此问题或其他问题有关。如果正确递增,您认为什么会使堆栈溢出?你似乎做的不多。。。除非它是您的缓存
变量,或者是getTimestamp
所做的任何事情。简言之我认为您需要发布更多的代码来让事情更清楚。循环不会导致堆栈溢出-无限嵌套函数调用会导致堆栈溢出。循环不会导致堆栈溢出-无限嵌套函数调用会导致堆栈溢出。循环不会导致堆栈溢出-无限嵌套函数调用会导致堆栈溢出。循环不会导致堆栈溢出-无限嵌套函数调用会导致堆栈溢出函数调用可以做到这一点。