Python學習筆記(七)錯誤處理及調試

參考資料:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832254674584228cd773d4db5a02ab85d2db4f83e000

https://blog.csdn.net/u013378306/article/details/70146102

1、捕獲錯誤

Python使用try ...except...finally的方式捕獲錯誤。下面的話摘自參考資料:

當我們認爲某些代碼可能會出錯時,就可以用try來運行這段代碼,如果執行出錯,則後續代碼不會繼續執行,而是直接跳轉至錯誤處理代碼,即except語句塊,執行完except後,如果有finally語句塊,則執行finally語句塊,至此,執行完畢。Python的錯誤其實也是class,所有的錯誤類型都繼承自BaseException,所以在使用except時需要注意的是,它不但捕獲該類型的錯誤,還把其子類也“一網打盡”。點擊這裏可查看Python定義的錯誤類型。2、錯誤處理在except語句塊內捕獲錯誤後,對錯誤的處理方式包括:

(1)使用print語句將錯誤輸出,繼續執行後面的程序。

(2)使用logging函數輸出日誌,繼續執行後面的程序。使用logging函數前,需要調用logging.basicConfig對日誌記錄參數進行配置,詳細配置方式可參考參考資料2。

(3)使用raise將異常拋出。語法格式爲:raise 錯誤類型實例,這裏的錯誤類型可以與捕獲的錯誤類型不一致。

3、調試模式

廖老師語錄:程序能一次寫完並正常運行的概率很小,基本不超過1%。在可能出錯的地方,可以通過以下3中手段輔助調試程序:(1)直接使用print語句將需要查看的信息輸出。(2)使用assert(斷言):斷言捕獲到符合條件的錯誤時,在按照斷言定義輸出指定信息的同時拋出AssertionError。(3)使用logging(日誌)(4)進入調試模式:調用pdb.set_trace進入調試模式。調試模式下常見的命令包括: l:查看代碼 n:單步執行 c:繼續運行 q:結束運行 p [變量名]:查看變量值注:支持python的集成開發環境都集成了單步調試模式,可以直接在IDE的代碼編輯器內設置斷點。下面給出我的學習代碼:

import logging
import pdb
#配置日誌格式
logging.basicConfig(level=logging.INFO, filename='log.txt', format='%(asctime)s day7[line:%(lineno)d]:%(message)s')
#定義一個函數,用於調試
def test():
    #接收用戶輸入
    m = raw_input("input an integer:")
    #設置斷點,進入單步調式模式    pdb.set_trace()
    try:
        print 'try'
        #使用斷言調試程序
        assert isinstance(m, int), logging.info('invalid input')
        mm = int(m)
        assert mm != 0, 'input cannot be zero'
        n = 10 / mm
        print n 
    except BaseException, e:
        raise
        #logging.exception(e)
        #print e.message
    finally:
        print 'finally'
    print 'END'
test()
今天就學習到這裏啦,下一節從測試開始學習。
發佈了80 篇原創文章 · 獲贊 3 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章