python-8-錯誤、調試和測試

調試測試

1、錯誤處理
1.1、try
  • python內置了一套try機制。若except後存在finally語句塊,則執行except之後會執行finally。
  • 不同的錯誤可以用多個except來捕獲。存在Exception。
  • 可以跨越多層調用,最底層出錯,只要某個上層捕獲到了,就可以處理。不需要在每個可能出錯的地方去捕獲錯誤,只要在合適的層次去捕獲錯誤就可以了。
1.2、調用棧
  • 如果沒有錯誤被捕獲,就會一直往上拋,最後被Python解釋器捕獲,打印一個錯誤信息,然後程序退出。
  • 可視作java的報錯信息。
1.3、記錄錯誤
  • 可以使用內置的logging模塊記錄錯誤信息。ex: logging.exception(e).
1.4、拋出錯誤
  • 用raise語句拋出一個錯誤信息,捕獲一個錯誤就是捕獲到該class的一個實例。只有在有必要時才定義錯誤類型,定義的時候儘量選擇內置的錯誤類型ValueError、TypeError。
  • raise如果不帶參數,就會把當前錯誤原樣拋出。
2、調試
  • 可以直接用print()打印出來;
  • 使用斷言,凡是用print()的地方,都可以用assert來替代;也需要刪除。
  • 使用logging,添加logging.basicConfig(level=logging.INFO)就能看到所有輸出了。
  • 使用pdb,使程序以單步方式運行,可以隨時查看運行狀態。eg: python -m pdb ex1.py。l代表下一段,n代表單步執行代碼,p查看變量,q結束調試。
  • 使用pdb.set_trace(),需要import pdb,然後在可能出錯的地方放一個pdb.set_trace(),就可以設置斷點了。命令c繼續執行。
3、單元測試
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章