Les codes:continuer ma demande quand il eu une exception
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.
}
}
Dans les codes ci-dessus, le LogParser utilisé pour analyser le journal tomcat de motif combiné, lorsque obtenir les données de format de date, j'utilise le SimpleDateFormat pour analyser à un objet Java.Util.Date, alors il peut lancer une exception ParseException.the logs ici est juste utilisé pour lancer l'exception.
Toutefois, lorsque cette exception se produit lors de l'analyse d'un journal, l'application quitte, je veux qu'il contine le journal suivant.
Comment le fabriquer?
J'ai lu le tutoriel à:
http://download.oracle.com/javase/tutorial/essential/exceptions/catchOrDeclare.html.
Il a dit que Error et RuntimeException ne sont pas soumis au bloc try catch, l'application quittera quand même.
Mais le java.text.ParseException étend l'exception, pourquoi il ne peut pas être soumis à mon bloc try-catch? Depuis la « erreur » la variable ne soit +1,
J'ai pensé utiliser ceci:
oui, cela fonctionne, mais quand le journal est analysé correctement, l'erreur serait également ajouter, CA ne devrait pas être.
Quelqu'un peut-il me dire pourquoi?
Etes-vous sûr que c'est une ParseException que vous obtenez? Il devrait y avoir stacktrace incluant le nom de la classe d'exception lorsque votre application se termine. – Thilo
Quel serveur LogParser utilisez-vous? vérifiez sa documentation ou la source si vous avez accès pour voir si elle se termine avec System.exit() sur exception. –