Python——異常處理

異常:代碼中的邏輯錯誤

程序一旦發生錯誤,就從錯誤的位置停下來不繼續執行

使用try和except就能處理異常

try:
    int('aaa')
    print('111')    # 檢查錯誤的位置
    1/0
    print('222')
    name
    print('333')
    2 + '3'
    [][3]
    {}['k']
    ret = int(input('number >>> '))
    print(ret * '*')
except ValueError:
    print('輸入的數據類型有誤')
except IndexError:
    print('超出列表的最大長度了')
except Exception:
    print('你錯了')
else:
    print('沒有異常的時候執行此代碼')
finally:
    print('無論代碼有沒有異常,都執行此代碼')
View Code

  1. try:

    須要處理的錯誤代碼ide

  2. except:     

    except + 錯誤類型:當代碼發生錯誤且錯誤類型符合時,執行此段代碼
    except 支持多分支
    except + Exception: 萬能異常處理
      有了萬能異常處理仍然要把能預測到的問題單獨處理
      單獨處理的全部內容都應該寫在萬能異常以前函數

# 能夠看到報錯信息的異常處理

try:
    int('aaa')
    print('111')    # 檢查錯誤的位置
    1/0
    print('222')
    name
    print('333')
    2 + '3'
    [][3]
    {}['k']
    ret = int(input('number >>> '))
    print(ret * '*')
except Exception as error:  # 能夠看到報錯信息
    print('你錯了',error)
View Code

 

  3. else:

    沒有異常的時候執行此代碼spa

  4. finally:

    無論代碼有沒有異常,都執行此代碼
    finally 和 return 相遇的時候,依然會執行
      執行到return時,發現後面還有finally,先執行finally,再返回
      經常使用於在函數中作異常處理,無論是否異常,去作一些收尾工做(如:關閉文件)3d

# finally的用法

# (1)不用finally
def func():
    try:
        f = open('file','w')
        f.close()
        return True
    except:
        f.close()
        return False
print(func())


# (1)使用finally
# 執行到return時,發現後面還有finally,先執行finally,再返回
def func():
    try:
        f = open('file','w')
        return True
    except:
        return False
    finally:
        print('執行finally了')
        f.close()
print(func())
View Code
相關文章
相關標籤/搜索