色婷婷AV无码久久精品,久久天天躁狠狠躁夜夜97,羞羞麻豆国产精品1区2区3区,啪影院免费线观看视频,思思久久er99精品亚洲

常州機(jī)器視覺培訓(xùn)

常州上位機(jī)軟件開發(fā)

常州工業(yè)機(jī)器人編程設(shè)計(jì)培訓(xùn)

常州PLC培訓(xùn)

常州PLC

常州PLC編程培訓(xùn)

常州電工培訓(xùn)

常州和訊plc培訓(xùn)中心歡迎您!
當(dāng)前位置:網(wǎng)站首頁(yè) > 新聞中心 新聞中心
Python異常處理(中)-常州上位機(jī)培訓(xùn),常州機(jī)器視覺培訓(xùn)
日期:2024-5-14 16:31:32人氣:  標(biāo)簽:常州上位機(jī)培訓(xùn) 常州機(jī)器視覺培訓(xùn)

三、自定義異常

自定義異常是在Python中創(chuàng)建新的異常類型的過(guò)程,這使得你可以定義特定于你的應(yīng)用程序或庫(kù)的錯(cuò)誤情況。自定義異常讓你能夠更清晰地表達(dá)錯(cuò)誤的含義,并且使得異常處理更加具有可讀性和可管理性。


3.1 自定義異常的創(chuàng)建

其實(shí),創(chuàng)建自定義異常類非常簡(jiǎn)單,通常你只需要繼承自Exception類(或者Python異常層次結(jié)構(gòu)中的任何其他類):


class MyCustomError(Exception):

    ""“基礎(chǔ)自定義異常類”""

    def __init__(self, message):

        super().__init__(message)

3.2 自定義異常的使用

一旦定義了自定義異常類,你就可以在代碼中使用raise關(guān)鍵字來(lái)拋出這個(gè)異常:


def divide(a, b):

    if b == 0:

        raise MyCustomError("分母不能為0")

    return a / b


try:

    divide(10, 0)

except MyCustomError as e:

    print(f"發(fā)生了自定義錯(cuò)誤:{e}")

3.3 其他功能

自定義異?梢园~外的屬性和方法,以便在異常發(fā)生時(shí)傳遞更多的錯(cuò)誤上下文:


class InvalidInputError(Exception):

    def __init__(self, input_value, message="無(wú)效的輸入"):

        super().__init__(message)

        self.input_value = input_value


try:

    raise InvalidInputError(10, "輸入值不能為偶數(shù)")

except InvalidInputError as e:

    print(f"錯(cuò)誤:{e},輸入的值是:{e.input_value}")

四、Assert斷言

4.1 什么是斷言

斷言(assert)是Python中的一種簡(jiǎn)單而強(qiáng)大的機(jī)制,用于設(shè)置代碼的檢查點(diǎn),確保程序在繼續(xù)執(zhí)行前滿足某些條件。如果條件為真,則程序繼續(xù)執(zhí)行;如果條件為假(即斷言失。,則Python拋出AssertionError異常。


基本語(yǔ)法


assert condition, "Error message"

condition:要檢查的條件,如果該條件為False,將引發(fā)異常。

"Error message":斷言失敗時(shí)顯示的錯(cuò)誤信息,它是可選的。

示例代碼


assert 2 + 2 == 4, "數(shù)學(xué)出錯(cuò)了!"

如果2 + 2不等于4,將拋出AssertionError,并且錯(cuò)誤信息將是"數(shù)學(xué)出錯(cuò)了!"。


4.2 什么時(shí)候用斷言

調(diào)試:在開發(fā)過(guò)程中,斷言可以用來(lái)驗(yàn)證代碼的某些部分是否按預(yù)期工作。

def add(a, b):

    assert isinstance(a, (int, float)) and isinstance(b, (int, float)), "參數(shù)必須是數(shù)字"

    return a + b


add(1, 'a')  # 這將引發(fā)AssertionError,因?yàn)榈诙䝼(gè)參數(shù)不是數(shù)字

契約編程:斷言可以作為函數(shù)契約的一部分,確保傳入的參數(shù)滿足特定的條件。

def divide(a, b):

    assert b != 0, "分母不能為0"

    return a / b


divide(10, 0)  # 這將引發(fā)AssertionError,因?yàn)榉帜笧?

自動(dòng)化測(cè)試:在自動(dòng)化測(cè)試中,斷言用來(lái)驗(yàn)證測(cè)試用例的預(yù)期結(jié)果。

def factorial(n):

    assert n >= 0, "輸入必須是非負(fù)整數(shù)"

    if n == 0:

        return 1

    return n * factorial(n - 1)


# 測(cè)試factorial函數(shù)

assert factorial(5) == 120, "factorial測(cè)試失敗"

文檔:斷言可以作為文檔的一部分,說(shuō)明函數(shù)的預(yù)期行為和參數(shù)要求。

斷言是一種快速簡(jiǎn)單的方法來(lái)設(shè)置檢查點(diǎn),但它不應(yīng)該被用來(lái)處理正常的程序錯(cuò)誤。對(duì)于這些情況,應(yīng)該使用異常處理。


本文網(wǎng)址:
下一篇:沒有資料

相關(guān)信息:
版權(quán)所有 CopyRight 2006-2017 江蘇和訊自動(dòng)化設(shè)備有限公司 常州自動(dòng)化培訓(xùn)中心 電話:0519-85602926 地址:常州市新北區(qū)府琛商務(wù)廣場(chǎng)2號(hào)樓1409室
蘇ICP備14016686號(hào)-2 技術(shù)支持:常州山水網(wǎng)絡(luò)
本站關(guān)鍵詞:常州PLC培訓(xùn) 常州PLC編程培訓(xùn) 常州PLC編程 常州PLC培訓(xùn)班 網(wǎng)站地圖 網(wǎng)站標(biāo)簽
在線與我們?nèi)〉寐?lián)系
色婷婷AV无码久久精品,久久天天躁狠狠躁夜夜97,羞羞麻豆国产精品1区2区3区,啪影院免费线观看视频,思思久久er99精品亚洲