За цикл в 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.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
_elements.size () = 4
класс элемента:java.lang.String
Обратите внимание, что он никогда не печатает последний файл System.out.println! Это таинственно ломается и выходит. Исключение не выдается или что-то еще, и этот раздел кода используется методом "handle(HttpExchange)" com.sun.net.httpserver.HttpHandler.
Кто-нибудь знает, что здесь происходит?
Заранее спасибо!
1 ответ
Знаете ли вы , что не исключение бросается? Или просто о том, что об исключениях не сообщается? Я бы обернул содержимое блока итератора в try/catch
и сообщать о любых исключениях.