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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章