Я работал над приложением анализатора логов databricks с помощью spark и scala.
В объекте ApacheAccessLog они генерируют исключение RuntimeException, если строка журнала не соответствует заданному шаблону.
log match {
case PATTERN(ipAddress, clientIdentd, userId, dateTime, method, endpoint, protocol, responseCode, contentSize)
=> ApacheAccessLog(ipAddress, clientIdentd, userId, dateTime, method, endpoint, protocol, responseCode.toInt,
contentSize.toLong)
case _ => throw new RuntimeException(s"""Cannot parse log line: $log""")
}
Мне бы хотелось, чтобы кто-то объяснил мне, почему я выбрасываю RuntimeException и нарушаю свою программу только потому, что одна строка журнала не соответствует моему шаблону? Не лучше ли просто пропустить эту строку, чтобы программа продолжала обрабатывать только те строки, которые соответствуют шаблону?
Также я буду рад, если вы предложите лучшую идею в качестве обходного пути.