Also, the method name may need to be changed in this case. The method is really a test for possibility of a coercion. The method should not return anything. If it returns without an exception, then the cercion is possible. Otherwise, the exception would interrupt the operation.

OR, another option is to return a closure of information, containing a boolean like what is now, and all the exception information like SQLCode and additional message. But that is pretty weird, and we cannot guarantee that the caller would remember to throw that exception for us.