Exceptions are hard to understand and we should instead be as explicit as possible with our return types.