I don't like this multiple returning in one method. Better declare `Throwable result` and assign it twice, and return once.