On 04/10/2015 04:48 AM, Pavel S wrote:
Hi,I noticed interesting behaviour. Since I don't have python3 installation here, I tested that on Python 2.7. Well known feature is that try..except block can catch multiple exceptions listed in a tuple: exceptions = ( TypeError, ValueError ) try: a, b = None except exceptions, e: print 'Catched error:', e However when exceptions=(), then try..except block behaves as no try..except block. exceptions = () try: a, b = None # <--- the error will not be catched except exceptions, e: print 'Catched error:', e I found use case for it, e.g. when I want to have a method with 'exceptions' argument: def catch_exceptions(exceptions=()): try: do_something() except exceptions: do_something_else() catch_exceptions() # catches nothing catch_exceptions((TypeError,)) # catches TypeError I believe that behaviour is not documented. What you think?
It's no more surprising than a for loop over an empty tuple or empty list. There's nothing to do, so you do nothing.
-- DaveA -- https://mail.python.org/mailman/listinfo/python-list
