Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #53023
| Date | 2013-08-26 20:48 -0500 |
|---|---|
| Subject | Missing something on exception handling in Python 3 |
| From | Skip Montanaro <skip@pobox.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.250.1377568091.19984.python-list@python.org> (permalink) |
I have code in the pylockfile package that looks roughly like this
(apologies for the indentation - I'm growing to dislike Gmail for
typing code fragments):
try:
write_pid_to_lockfile(somefile)
except OSError as exc:
if conditions_i_can_handle:
do_other_stuff...
else:
raise LockFailed("Failed to create %s" % self.path)
Thinking I would just get the final exception (not the one I caught
originally), I was surprised to see this output on my screen:
>>> lock.acquire()
Traceback (most recent call last):
File "lockfile/pidlockfile.py", line 80, in acquire
write_pid_to_pidfile(self.path)
File "lockfile/pidlockfile.py", line 163, in write_pid_to_pidfile
pidfile_fd = os.open(pidfile_path, open_flags, open_mode)
OSError: [Errno 13] Permission denied: '/tmp/skip/lock'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lockfile/pidlockfile.py", line 94, in acquire
raise LockFailed("failed to create %s" % self.path)
lockfile.LockFailed: failed to create /tmp/skip/lock
When I rung the same code with Python 2.7, I get the exception output
I anticipate:
>>> lock.acquire()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "lockfile/pidlockfile.py", line 94, in acquire
raise LockFailed("failed to create %s" % self.path)
LockFailed: failed to create /tmp/skip/lock
It appears exception handling changed in Python 3. How do I suppress
the lower level OSError?
Thx,
Skip
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Missing something on exception handling in Python 3 Skip Montanaro <skip@pobox.com> - 2013-08-26 20:48 -0500
csiph-web