Je suis d'analyse tiers des fichiers journaux contenant de la date/heure à l'aide de Joda. La date/heure est dans un des deux formats différents, en fonction de l'âge des fichiers de log, je suis de l'analyse.
Actuellement, j'ai un code comme ceci:
try {
return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart);
} catch (IllegalArgumentException e) {
return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart);
}
Cela fonctionne, mais contrevient à Joshua Bloch conseils Efficaces Java 2nd Edition (Article 57: Utilisez uniquement des exceptions pour des conditions exceptionnelles). Il rend également difficile de déterminer si une IllegalArgumentException se produit en raison d'un foutu date/heure dans un fichier journal.
Pouvez-vous suggérer une approche plus agréable que ne l'abus des exceptions?