I see what you did there...

I still think it's inconsistent to do this error handling outside of this function, even through it can be either an option, an either, or a thrown exception