python教程:拋出自定義的異常

在開發中,除了代碼執行出錯Python解釋器會拋出異常之外,還可以根據應用程序特有的業務需求主動拋出異常。

設計一個人類,有名字(name)和年齡(age)兩個屬性,按照業務需求,如果年齡(age)的範圍在(0,150]完成對象的創建,反之將拋出異常,終止程序。

# 自定義一個人類
class Person(object):

    def __init__(self, name, age):
        # 如果年齡滿足需求
        if  0 < age <= 150:
            self.name = name 
            self.age = age
        else:
        # 如果條件不滿足需求
        # 將拋出異常,終止程序
            pass

Python中提供了一個Exception異常類,Exception異常類是所有異常類的父類,在開發時,如果滿足特定業務需求時,希望拋出異常,可以如下操作:

  • 創建一個繼承於Exception異常類的自定義異常對象;
  • 使用 raise 關鍵字拋出自定義異常對象;
'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:531509025
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
# 自定義異常類
class AgeError(Exception):

    def __init__(self, age):
        # 保存年齡,進行私有
        self.__age = age

    # 設計異常的信息描述
    def __str__(self):
        return "傳入的年齡超出的正常範圍:age=%d" % self.__age

# 自定義一個人類
class Person(object):

    def __init__(self, name, age):
        # 如果年齡滿足需求
        if  0 < age <= 150:
            self.name = name
            self.age = age
        else:
        # 如果條件不滿足需求
        # 將拋出異常,終止程序
            raise AgeError(age)

# 測試
xm = Person("小明", 151)
# 控制檯輸出:
__main__.AgeError: 傳入的年齡超出的正常範圍:age=151

例子:

'''
遇到問題沒人解答?小編創建了一個Python學習交流QQ羣:531509025
尋找有志同道合的小夥伴,互幫互助,羣裏還有不錯的視頻學習教程和PDF電子書!
'''
# 自定義異常類
class AgeError(Exception):

    def __init__(self, age):
        self.__age = age

    # 重寫str方法
    def __str__(self):
        return "您傳入的年齡不滿足需求:age=%d" % self.__age


# 自定義一個人類
class Person(object):

    def __init__(self, name, age):
        # 判斷年齡
        if 0 < age <= 150:
            self.name = name
            self.age = age
        else:
            # 拋出自定義異常
            raise AgeError(age)


xm = Person("小明", 160)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章