June 2017
Beginner
352 pages
8h 39m
English
Instead of returning an unPythonic error code, we can simply emit our error message and re-raise the exception object we're currently handling. This can be done by replacing the return -1 with a raise statement at the end of our exception handling block:
def convert(s): """Convert a string to an integer.""" try: return int(s) except (ValueError, TypeError) as e: print("Conversion error: {}".format(str(e)), file=sys.stderr) raise
Without a parameter raise simply re-raises the exception that is currently being handled.
Testing in the REPL, we can see that the original exception type is re-raised whether it's a ValueError or a TypeError, and our Conversion error message is printed to stderr along the way:
>>> from exceptional ...
Read now
Unlock full access