Java HttpServer中的for循环行为不正常
我对for循环有一个奇怪的问题。 这个循环只迭代一次,而它应该迭代更多次,因为它有3-4个元素,这取决于一些无关的东西 代码如下:Java HttpServer中的for循环行为不正常,java,http,httpserver,Java,Http,Httpserver,我对for循环有一个奇怪的问题。 这个循环只迭代一次,而它应该迭代更多次,因为它有3-4个元素,这取决于一些无关的东西 代码如下: System.out.println("Executing " + url); System.out.println("_elements.size()=" + _elements.size()); for (Object el : _elements) { System.out.println("element class:" + el.getCl
System.out.println("Executing " + url);
System.out.println("_elements.size()=" + _elements.size());
for (Object el : _elements) {
System.out.println("element class:" + el.getClass().getName());
if (el instanceof DynamicServlet) {
((DynamicServlet) el).execute();
_stringBuff.append(((DynamicServlet) el).getOutput());
}
if (el instanceof String)
_stringBuff.append((String)el);
} // for
System.out.println("finished for loop");
程序将打印以下行:
执行/admin.dsp
_元素。大小=4
元素类:java.lang.String
请注意,它永远无法打印最后一个System.out.println!它神秘地断裂并退出。
没有抛出异常或任何异常,并且此代码部分由com.sun.net.httpserver.HttpHandler的handleHttpExchange方法执行
有人知道这里发生了什么吗
提前谢谢 您知道没有抛出异常吗?或者只是没有报告任何例外情况?我会将迭代器块的内容包装在一个try/catch中,并报告任何异常。附加一个调试器和跟踪,以发现问题。1尝试将所有方法代码放在try{}catchThrowable{}块中。2有多线程吗?@Dan Grossman我确实试着在这里和那里设置断点,但什么都没有发生,线程只是回到了它的起始位置。哦,你说得对!我抛出了一个NPE,但不知怎么的,线程仍然活着或是别的什么。也许sun的实现捕获到任何异常,只是没有将其抛出到默认错误流中。@yacov,您可以回答下面的问题并接受它作为答案,或者接受此答案作为正确答案。