《云计算全栈》-python篇:自定义异常

7 案例5:自定义异常
7.1 问题

创建myerror.py脚本,要求如下:

编写第一个函数,函数接收姓名和年龄,如果年龄不在1到120之间,产生ValueError异常
编写第二个函数,函数接收姓名和年龄,如果年龄不在1到120之间,产生断言异常

7.2 方案

两个函数,分别有引发异常及断言异常的功能:

1.当set_age()函数调用名字与年龄两个实参时,如果年龄在0-120范围内,打印“bob is 25 years old”,如果年龄在0-120范围外,利用raise 语句抛出一个指定的异常

2.当set_age2()函数调用名字与年龄两个实参时,如果年龄在0-120范围内,表达式为true,打印“bob is 20 years old”,如果年龄在0-120范围外,表达式为Flase,利用assert 断言语句抛出一个指定的异常
7.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:编写脚本

[root@localhost day05]# vim myerror.py
#!/usr/bin/env python3
def set_age(name, age):
    if not 0 < age < 120:
        raise ValueError("age out of range.")
    print("%s is %s years old" % (name, age))
def set_age2(name, age):
    assert 0 < age < 120, 'age out of range.'
    print("%s is %s years old" % (name, age))
if __name__ == '__main__':
    set_age('bob', 25)
    set_age2('bob', 20)

步骤二:测试脚本执行

[root@localhost day05]# python3 myerror.py
bob is 25 years old
bob is 20 years old
[root@localhost day05]# python3 myerror.py 
Traceback (most recent call last):
  File "myerror.py", line 11, in <module>
    set_age('bob', 125)
  File "myerror.py", line 3, in set_age
    raise ValueError("age out of range.")
ValueError: age out of range.
[root@localhost day05]# python3 myerror.py 
bob is 25 years old
Traceback (most recent call last):
  File "myerror.py", line 12, in <module>
    set_age2('bob', 120)
  File "myerror.py", line 7, in set_age2
    assert 0 < age < 100, 'age out of range.'
AssertionError: age out of range.
发布了275 篇原创文章 · 获赞 46 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xie_qi_chao/article/details/104726131