Главное улучшение, которое я бы сделал, - хранить все возникающие исключения и делать их доступными как-то где-нибудь. В остальном вроде нормально.
Для скептиков, это не совсем ненормально хотеть завершить какую-то работу, даже когда происходит исключение. Пакетная обработка - довольно типичный случай.