python基礎入門之十七 —— 異常

1、定義

當檢測到一個錯誤時,解釋器就沒法繼續進行了,反而出現一些錯誤的提示,這就是所謂的異常。spa

語法:code

try: 可能發生的錯誤代碼 except: 若是出現異常執行的代碼  
# 捕獲指定異常: 這裏是‘NameError’
try:
    print(a)
except NameError as result:
    print(result)   # name 'a' is not defined

# 捕獲全部異常 :Exception
try:
    print(b)
except Exception as result:
    print(result)   # name 'c' is not defined

# 若是嘗試執行的代碼的異常類型和要捕獲的異常類型不一致,則沒法捕獲異常。
try:
    print(b)
except IOError as result:
    print(result)   # 報錯

2、else/finally

try:
    print(1) # 1
except Exception as result :
    print(result)
else:
    print('沒有異常時執行的代碼')  # 沒有異常時執行的代碼
finally:
    print('不管是否異常都要執行的代碼')  # 不管是否異常都要執行的代碼

try:
    print(i)
except Exception as result :
    print(result)  # name 'i' is not defined
else:
    print('沒有異常時執行的代碼')
finally:
    print('不管是否異常都要執行的代碼')  # 不管是否異常都要執行的代碼

3、自定義異常

raise 拋出異常blog

class ShortInputError(Exception):
    def __init__(self,length,min_len):
        self.length = length
        self.min_len = min_len

    def __str__(self):
        return f'你輸入的長度是{self.length},不能少於{self.min_len}'


try:
    con = input('input:')
    if len(con)<3:
        raise ShortInputError(len(con),3)
except Exception as res:
    print(res)
相關文章
相關標籤/搜索