Replace try { ... } catch { case t: Throwable => ... } with scala.util.Try

Catching `Throwable` is a generally bad idea that can leave your JVM in a
useless (undead) state. `Try` is more reasonable, and catches non-fatal
exceptions only (see `scala.util.control.NonFatal` for details).

Also removed a match on `JsonMappingException` because it is a subclass of
`JsonProcessingException` (already caught).