python中的異常捕獲、異常處理語句關鍵字有try、except、else、finally,主要組合如下:
1.不捕獲異常,不管是否異常仍要執行操作(finally)
先執行finally中的語句,再丟擲異常。
2.捕獲所有的異常(最好不要用)# 不捕獲異常,丟擲異常後,仍執行finally中的語句
try:
print(1/0)
finally:
print('執行了')
# 執行了
# traceback (most recent call last):
# file "/users/***/test.py", line 3, in # print(1/0)
# zerodivisionerror: division by zero
3.捕獲指定的異常# 捕獲所有的異常
try:
print(1/0)
except:
print('有異常了')
捕獲一種異常
同時捕獲多種異常(實際上也只是捕獲其中的一種,只是可捕獲的種類多了)try:
print(1/0)
except zerodivisionerror:
print('zerodivisionerror: division by zero')
只捕獲了zerodivisionerror異常,輸出:'division by zero'try:
print(1/0)
print(int('he'))
except (zerodivisionerror,valueerror) as error:
print(error)
捕獲了typeerror異常,輸出:*** 'int' object is not subscriptabletry:
print(12[0])
print(int('he'))
except (zerodivisionerror,valueerror,typeerror) as error:
print(type(error),'***',error)
4.只在沒有異常時執行(else)
5.可捕獲異常,不管有沒有異常,都要執行(finally)try:
print('123')
except (zerodivisionerror,valueerror,typeerror) as error:
print(type(error),'***',error)
else:
print('沒有異常')
先執行except下的語句,再執行finally下的語句。
6.所有**齊上陣try:
print(1/0)
except (zerodivisionerror,valueerror,typeerror) as error:
print(type(error),'***',error) # *** division by zero
finally:
print('異常也要執行') # 異常也要執行
當丟擲的異常不在可捕獲的異常中時,先執行finally中的語句,再丟擲異常def divide(x, y):
try:
result = x / y
except zerodivisionerror:
print("被除數不能是0")
else:
print("除法結果是:", result)
finally:
print("執行了finally")
當丟擲的異常**獲,則先執行except中的語句,再執行finally中的語句divide('234','456')
# 執行了finally
# traceback (most recent call last):
# file "/users/menghua/documents/pythonworkspace/flasktest/test.py", line 11, in # divide('234','456')
# file "/users/menghua/documents/pythonworkspace/flasktest/test.py", line 3, in divide
# result = x / y
# typeerror: unsupported operand type(s) for /: 'str' and 'str'
沒有異常丟擲時,先執行else中的語句,再執行finally中的語句divide(123,0)
# 被除數不能是0
# 執行了finally
7.引發異常raisedivide(123,12)
# 除法結果是: 10.25
# 執行了finally
先執行except中的語句,再執行finally中的語句
ps:以上幾種異常處理方式中語句的關鍵字順序不可修改。try:
raise valueerror('丟擲異常的提示資訊,不加引數則只是會捕獲異常,不會有提示資訊')
except valueerror as error:
print(error) # 丟擲異常的提示資訊,不加引數則只是會捕獲異常,不會有提示資訊
else:
print('沒有異常')
finally:
print('異常也要執行') # 異常也要執行
Python3 異常處理
python3.5 異常處理 try用法 try except語句主要是用於處理程式正常執行過程中出現的一些異常情況 try finally語句則主要用於在無論是否發生異常情況,都需要執行一些清理工作的場合 完整語句中,else語句的存在必須以except x或者except語句為前提,也就是說el...
Python3異常處理
在程式設計過程中為了增加友好性,在程式出現bug時一般不會直接將錯誤資訊展示給使用者,而是提供乙個友好的輸出提示。1.異常基礎 常用結構 try pass except exception,ex pass 其他結構 try 主 塊 pass except keyerror,e 異常時,執行該塊 pa...
python3 異常處理
try dic dic b keyerror lst a b lst 10 indexerror s 2gb s int s valueerror except valueerror as e e為異常的值 print e except keyerror as e print e except in...