[Python-3000] Exception re-raising woes
Antoine Pitrou
solipsis at pitrou.net
Sat May 31 03:33:14 CEST 2008
Guido van Rossum <guido <at> python.org> writes:
> I would be okay as well with restricting bare raise syntactically to
> appearing only inside an except block, to emphasize the change in
> semantics that was started when we decided to make the optional
> variable disappear at the end of the except block.
>
> This would render the following code illegal:
>
> def f():
> try: 1/0
> except: pass
> raise
But you may want to use bare raise in a function called from an exception
handler, e.g.:
def handle_exception():
if user() == "Albert":
# Albert likes his exceptions uncooked
raise
else:
logging.exception("an exception occurred")
def f():
try:
raise KeyError
except:
handle_exception()
Antoine.
More information about the Python-3000
mailing list