The possibility of an exception means that we have to manually build the list, because the recovery mechanism (aborting the
tryblock) and the error handling mechanism (the
exceptblock) are tightly bound. Our clumsy exception handling system is actually stopping us from building the abstraction that deals with parsing an entire log. And as programming is essentially the art of abstraction, this is something a language should never ever do.
Conditions are an elegant solution.