None. Every built-in has to check this for itself. If invalid input is delivered, no exception should be thrown (but log it). The built-in is just one method of realizing a predicate, and it should be of no difference if you use built-ins or rules or facts in the edb. If the arguments do not match, the result is false.