In one of my own packages, I use the following to catch dynamic error messages:
def handle_error(exc): # do stuff with exc with catch('error_code', handle_error): # do stuff that can raise an error The definition of "catch" is as follows, assuming the root exception actually raised is called "CodedError" whose "code" attribute is the error code: from contextlib import contextmanager @contextmanager def catch(code=None, caught=None, always=None): try: yield except CodedError as exc: if isinstance(code, str): is_caught = exc.code == code else: is_caught = exc.code in code #assume it's a container if (code is not None) and not is_caught: raise if caught is not None: caught(exc) finally: if always is not None: always() Perhaps you could make use of this? Suggesting, Ken Hilton;
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/