python异常处理
异常处理
1.try-except
即使程序员编写的程序语法完全正确,在程序运行或执行时仍可能出错----最典型的就是除0错误。因为0不能作为除数,Python解释器会显示一条消息通知程序员该错误。这个错误会终止程序的执行。
>>> print(1/0) Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero >>>
如果我们只是想在正在运行的程序中处理错误,该怎么办?Python语言提供的异常处理功能就是做这件事的。
我们用try/except语句来处理一下前面的例子的异常:现在,该程序试图执行一个除0错。当错误发生时,我们的异常处理将会捕获着一错误并在屏幕上打印一条消息。
>>> try: ... print("[+] 1/0 = " + str(1/0)) ... except: ... print("[-] Error") ... [-] Error
遗憾的是,我们得到的有关导致错误异常的确切信息非常少。向用户提供能提示当前发生了什么错误的出错消息可能是非常有用的。为了做到这一点,我们要把系统报的异常信息存储到变量e中,以便将其打印出来,同时还要显示地将变量e转换为一个字符串。
>>> try: ... print("[+] 1/0 = " + str(1/0)) ... except Exception as e: ... print("[-] Error = " + str(e)) ... [-] Error = division by zero
2.try-except-else
try-except-else工作原理:Python尝试执行try代码块中的代码;只有可能引发异常的代码才需要放在try语句中。有时候,有一些仅在try代码块成功执行时才需要运行的代码;这些代码应该放在else代码块中。except代码块告诉python,如果它尝试运行try代码块中的代码时引发了指定的异常,该怎么办(提示信息)。