Коды:продолжить свое применение при возникновении на исключение из
String[] logs={"a","b","c"};
int errors=0;
for(String str:logs){
try{
LogParser.parse(str);
} catch(ParseException e){
error++;
continue; // Seems that, this two line codes are not reached.
}
}
В приведенных выше кодах, LogParser используется для анализа лога TOMCAT комбинированного шаблона, когда получить данные формата даты, я использую SimpleDateFormat для разбора это к объекту Java.Util.Date, то он может выбросить массив ParseException.the, который используется только для исключения исключения.
Однако, когда это исключение, когда выполняется синтаксический анализ одного журнала, приложение завершит работу, я хочу, чтобы он был следующим журналом.
Как это сделать?
Я прочитал учебник по адресу:
http://download.oracle.com/javase/tutorial/essential/exceptions/catchOrDeclare.html.
Сообщалось, что ошибка и исключение RuntimeException не относятся к блоку захвата try, приложение все равно выйдет.
Но java.text.ParseException расширяет исключение, почему он не может быть объектом моего блока try-catch? Поскольку переменная «ошибка» не будет +1,
Я думал использовать это:
да, это работает, но когда журнал разобран правильно, то ошибка будет также добавить, так не должно быть.
Может ли кто-нибудь сказать мне, почему?
Вы уверены, что это ParseException, которое вы получаете? Там должно быть stacktrace, включая имя класса исключения, когда ваше приложение выходит. – Thilo
Какой LogParser вы используете? проверьте его документацию или источник, если у вас есть доступ, чтобы узнать, выходит ли он с помощью System.exit() для исключения. –