久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Python錯(cuò)誤的處理方法

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

異常的捕獲與處理

什么是錯(cuò)誤

簡而言之:還沒運(yùn)行,在語法解析的時(shí)候,就發(fā)現(xiàn)語法存在問題,這個(gè)時(shí)候就是錯(cuò)誤。

什么是異常

簡而言之:代碼寫好之后,無明顯語法錯(cuò)誤(這個(gè)時(shí)候,編輯器不知道有錯(cuò),語法解析時(shí)也不知道有錯(cuò)),但是運(yùn)行的時(shí)候,會(huì)發(fā)生錯(cuò)誤,這個(gè)時(shí)候稱之為異常。

什么是警告

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

異常怎么處理

異常的處理形式如下:

try: 你要做的可能會(huì)發(fā)生異常的事except 可能會(huì)發(fā)生的異常: 發(fā)生異常之后要做的事except 可能會(huì)發(fā)生的異常2: 發(fā)生異常之后要做的事2finally: 最終要做的事情

比如下面的代碼:

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

這個(gè)時(shí)候再次運(yùn)行,就不會(huì)再出現(xiàn)異常

在平時(shí)的開發(fā)中,也會(huì)使用預(yù)定義清理的操作,來避免因?yàn)楫惓6鴮?dǎo)致程序奔潰,比如在進(jìn)行IO操作的時(shí)候,可以使用:

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

這樣一旦運(yùn)行時(shí)發(fā)生異常,程序會(huì)自動(dòng)幫你關(guān)閉文件,避免整個(gè)程序奔潰

自定義異常與異常的拋出

雖然python中提供了非常多的內(nèi)置異常類,但是,在平時(shí)開發(fā)中,針對(duì)特定的業(yè)務(wù),可能需要自定義異常,此時(shí)怎么辦?

通過自定義繼承Exception類的類,可以實(shí)現(xiàn)異常的自定義

class MyException(Exception): def __init__(self, parameter): err = ’非法入?yún)0},分母不能為0’.format(parameter) Exception.__init__(self, err) self.parameter = parameter

當(dāng)我們代碼中碰到某種特殊業(yè)務(wù)情況,需要向調(diào)用方拋出自定義異常,可以使用 raise 關(guān)鍵字

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

我們?cè)诓东@異常之后,也可以直接將異常拋出,此時(shí)直接使用 raise 關(guān)鍵字即可

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

單元測試

什么是單元測試

單元測試(英語:Unit Testing)又稱為模塊測試,是針對(duì)程序模塊(軟件設(shè)計(jì)的最小單位)來進(jìn)行正確性檢驗(yàn)的測試工作。程序單元是應(yīng)用的最小可測試部件。在過程化編程中,一個(gè)單元就是單個(gè)程序、函數(shù)、過程等;對(duì)于面向?qū)ο缶幊蹋钚卧褪欠椒ǎɑ悾ǔ悾⒊橄箢悺⒒蛘吲缮悾ㄗ宇悾┲械姆椒ā? 簡而言之:就是寫一段代碼,用來驗(yàn)證另一段代碼在特定情況下的正確性

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

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

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

1、新建python文件,編寫具體業(yè)務(wù)代碼

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

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

Python錯(cuò)誤的處理方法

3、填寫好相應(yīng)的模塊名及測試類名,點(diǎn)擊ok,此時(shí)pycharm會(huì)幫我們自動(dòng)創(chuàng)建測試模塊及類

Python錯(cuò)誤的處理方法

4、編寫測試代碼,并執(zhí)行單元測試

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錯(cuò)誤的處理方法的詳細(xì)內(nèi)容,更多關(guān)于Python錯(cuò)誤處理的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 南汇区| 逊克县| 自治县| 时尚| 西乌珠穆沁旗| 黄浦区| 郸城县| 镇安县| 彩票| 牡丹江市| 金山区| 徐水县| 克东县| 抚顺市| 桃园县| 巧家县| 那坡县| 繁昌县| 涞水县| 新建县| 怀来县| 利辛县| 新河县| 宜良县| 盱眙县| 诏安县| 时尚| 响水县| 仁怀市| 宁武县| 宜阳县| 轮台县| 建昌县| 巩义市| 麟游县| 都江堰市| 五台县| 满城县| 财经| 南投市| 津市市|