在開發中,除了代碼執行出錯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)