2013-12-14 84 views
3

我只是很好奇python异常的语法,因为我似乎无法理解何时您可以使用下面的语法来捕获异常。Python异常语法差异?

try: 
    """ 
     Code that can raise an exception... 
    """ 
except Exception as e: 
    pass 

try: 
    """ 
     Code that can raise an exception... 
    """ 
except Exception, e: 
    pass 

的区别是什么?

+0

我想我不是非常感谢@MartijnPieters – Bwire

回答

3

注:正如马亭指出,comma variable形式在Python 3弃用。X。所以,它总是更好地使用as的形式。

http://docs.python.org/2/tutorial/errors.html#handling-exceptions

except Exception, e: 

相当于

except Exception as e: 

逗号当你正赶上一次多个异常仍在使用,这样

except (NameError, ValueError) as e: 

记住,括号捕捉多个异常时必须遵守例外规定。

+2

除了后者是首选的,前者已被弃用,并且已在Python 3中完全删除。 –

+1

您的最后一行显示**为什么引入**'as'来代替逗号。当发现多个例外情况时,它就像地狱一样混乱。使用'except(NameError,ValueError)作为e:'那里。 –

+0

@MartijnPieters有你:)更新它 – thefourtheye