您的位置:首頁技術文章
文章詳情頁

Python錯誤的處理方法

瀏覽:3日期:2022-07-19 16:49:45

異常的捕獲與處理

什么是錯誤

簡而言之:還沒運行,在語法解析的時候,就發現語法存在問題,這個時候就是錯誤。

什么是異常

簡而言之:代碼寫好之后,無明顯語法錯誤(這個時候,編輯器不知道有錯,語法解析時也不知道有錯),但是運行的時候,會發生錯誤,這個時候稱之為異常。

什么是警告

import warningsdef fxn(): warnings.warn('deprecated', DeprecationWarning)

異常怎么處理

異常的處理形式如下:

try: 你要做的可能會發生異常的事except 可能會發生的異常: 發生異常之后要做的事except 可能會發生的異常2: 發生異常之后要做的事2finally: 最終要做的事情

比如下面的代碼:

try: print(10/0)except ZeroDivisionError: print('除數不能為0')

這個時候再次運行,就不會再出現異常

在平時的開發中,也會使用預定義清理的操作,來避免因為異常而導致程序奔潰,比如在進行IO操作的時候,可以使用:

with open('myfile.txt') as f: for line in f: print(line, end='')

這樣一旦運行時發生異常,程序會自動幫你關閉文件,避免整個程序奔潰

自定義異常與異常的拋出

雖然python中提供了非常多的內置異常類,但是,在平時開發中,針對特定的業務,可能需要自定義異常,此時怎么辦?

通過自定義繼承Exception類的類,可以實現異常的自定義

class MyException(Exception): def __init__(self, parameter): err = ’非法入參{0},分母不能為0’.format(parameter) Exception.__init__(self, err) self.parameter = parameter

當我們代碼中碰到某種特殊業務情況,需要向調用方拋出自定義異常,可以使用 raise 關鍵字

from chapter12.my_exception import MyExceptiondef my_fun(x): if x == 0: raise MyException(x) return 12/xprint(my_fun(-12))

我們在捕獲異常之后,也可以直接將異常拋出,此時直接使用 raise 關鍵字即可

def my_func(): try: print(10 / 0) except ZeroDivisionError: print('除數不能為0') # 此處直接將捕獲的異常拋出 raise

單元測試

什么是單元測試

單元測試(英語:Unit Testing)又稱為模塊測試,是針對程序模塊(軟件設計的最小單位)來進行正確性檢驗的測試工作。程序單元是應用的最小可測試部件。在過程化編程中,一個單元就是單個程序、函數、過程等;對于面向對象編程,最小單元就是方法,包括基類(超類)、抽象類、或者派生類(子類)中的方法。 簡而言之:就是寫一段代碼,用來驗證另一段代碼在特定情況下的正確性

單元測試的好處與“壞處”

好處:減少bug、提高代碼質量、可以放心重構(在未來修改實現的時候,可以保證代碼的行為仍舊是正確的) '壞處':占用開發時間,尤其是在起步階段

在python中,如何編寫單元測試

1、新建python文件,編寫具體業務代碼

class MyTest():def my_add(self, a, b):return a + b

2、右鍵類名,選擇Go TO ==》test,或者直接 ctrl+shift +t

Python錯誤的處理方法

3、填寫好相應的模塊名及測試類名,點擊ok,此時pycharm會幫我們自動創建測試模塊及類

Python錯誤的處理方法

4、編寫測試代碼,并執行單元測試

import unittestfrom unittest import TestCasefrom test import MyTestclass TestMyTest(TestCase):def test_add(self): s= MyTest() self.assertEqual(s.my_add(1,5),6)if __name__ == '__main__':unittest.main()

以上就是Python錯誤的處理方法的詳細內容,更多關于Python錯誤處理的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
国产综合久久一区二区三区