Her*_*ari 0 python exception-handling exception python-2.7 try-except
我为初学者做了一个关于我的python的讲座,其中某个主题没有得到很好的解释.那这是e做什么的呢?
def x(a, b):
try:
return a / b
except ZeroDivisionError, e:
return 0
Run Code Online (Sandbox Code Playgroud)
已捕获的异常将分配给名称e.您可以选择任何有效的Python标识符:
except ZeroDivisionError, caught_exception:
Run Code Online (Sandbox Code Playgroud)
这允许您使用捕获的异常; 也许是为了打印错误消息,或者为了其他目的使用异常的属性.请参阅Python教程的" 处理异常"一章.
该except <Exception>, <name>:语法已弃用,取而代之的:
except ZeroDivisionError as e:
Run Code Online (Sandbox Code Playgroud)
它更具可读性,避免了与语法混淆以捕获多种异常类型:
except (ZeroDivisionError, ValueError):
Run Code Online (Sandbox Code Playgroud)
由于您发布的功能不使用e,因此可以安全地将其删除:
def x(a, b):
try:
return a / b
except ZeroDivisionError:
return 0
Run Code Online (Sandbox Code Playgroud)