[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

AltStyle によって変換されたページ (->オリジナル) /