any reason why convertIf* doesn't simply throw the exception?  that would avoid this additional blocking and conditional checking.