Ben Finney wrote: > Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> writes: > >> (By the way, I have to question the design of an exception with error >> codes. That seems pretty poor design to me. Normally the exception *type* >> acts as equivalent to an error code.) > > Have a look at Python's built-in OSError. The various errors from the > operating system can only be distinguished by the numeric code the OS > returns, so that's what to test on in one's unit tests. The core devs are working to fix that:
$ python3.2 -c'open("does-not-exist")' Traceback (most recent call last): File "<string>", line 1, in <module> IOError: [Errno 2] No such file or directory: 'does-not-exist' $ python3.3 -c'open("does-not-exist")' Traceback (most recent call last): File "<string>", line 1, in <module> FileNotFoundError: [Errno 2] No such file or directory: 'does-not-exist' $ python3.2 -c'open("unwritable", "w")' Traceback (most recent call last): File "<string>", line 1, in <module> IOError: [Errno 13] Permission denied: 'unwritable' $ python3.3 -c'open("unwritable", "w")' Traceback (most recent call last): File "<string>", line 1, in <module> PermissionError: [Errno 13] Permission denied: 'unwritable' http://www.python.org/dev/peps/pep-3151/ -- http://mail.python.org/mailman/listinfo/python-list