def XOR(a, b, exc=CertifierValueError('<STR_LIT>')):
errors = []<EOL>for certifier in [a, b]:<EOL><INDENT>try:<EOL><INDENT>certifier()<EOL><DEDENT>except CertifierError as e:<EOL><INDENT>errors.append(e)<EOL><DEDENT><DEDENT>if len(errors) != <NUM_LIT:1>:<EOL><INDENT>if exc is not None:<EOL><INDENT>raise exc<EOL><DEDENT><DEDENT>
Only one arg must not raise a Certifier exception when called overall.
Raise the specified exception on failure.

:params Certifier a:
    The first certifiers to call
:params Certifier b:
    The second certifiers to call
:param Exception exc:
    Callable that is raised if XOR fails.