1. 程式人生 > >python程式設計_Python異常機制try: 程式碼段 except 異常型別,e: 異常處理程式碼段,如果不知道異常型別,可以使用try: 程式碼段 except Except,e:異常處理程式碼段;Ex

python程式設計_Python異常機制try: 程式碼段 except 異常型別,e: 異常處理程式碼段,如果不知道異常型別,可以使用try: 程式碼段 except Except,e:異常處理程式碼段;Ex

一個Python異常例項

一個簡單的異常例子,開啟一個不存在的檔案,引發異常:

#!/usr/local/bin/python3.2    
try:
    f = open("file-not-exists", "r")  
except IOError,e:
    print("open exception: %s: %s\n" %(e.errno, e.strerror))  
與Python異常相關的關鍵字:
關鍵字          關鍵字說明
raise           丟擲/引發異常
try/except      捕獲異常並處理
pass            忽略異常
as              定義異常例項(except IOError as e)
finally         無論是否出現異常,都執行的程式碼
else            如果try中的語句沒有引發異常,則執行else中的語句
except
老版本的Python,except語句寫作"except Exception, e",Python 2.6後應寫作"except Exception as e"。注:python3後print()要加括號
使用
except
而不帶任何異常型別:
try:

      do something

except:

      handle except

    會捕獲所有異常,包括鍵盤中斷和程式退出請求(用sys.exit()就無法退出程式了,因為異常被捕獲了
),因此慎用。
使用
except Exception as e
可以捕獲除與程式退出sys.exit()相關之外的所有異常
else與finally
else表示如果try中的程式碼沒有引發異常,則會執行else:
try:
    f = open("foo", "r")
except IOError as e:
    ...
else:
    data = f.read()
finally表示無論是否有異常,都將被執行:
try:
    f = open("foo", "r")
except IOError as e:
    ...
finally:
    f.close()