继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【2023年】第59天 自定义异常与抛出异常

谦瑞
关注TA
已关注
手记 79
粉丝 8
获赞 8

一、自定义抛出异常函数 --raise

  • 将信息以报错的形式抛出
用法:
	raise 异常类型(message)
参数:
	message: 错误信息
返回值:
	无返回值

练习1:使用test2调用test,然后raise在test中实现,raise后必须要跟一个异常类型!

def test(number):
    if number == 100:
        raise ValueError('number 不可以是100')
    return number


result = test(50)
print(result)


def test2(number):
    try:
        return test(number)
    except ValueError as e:
        return e


result = test2(100)
print(result)

运行结果:
图片描述

练习2:raise后面也可以跟通用异常类型Exception

def test3(name):
    if name == 'dewei':
        raise Exception('dewei不可以被填写')
    return name


test3('dewei')

运行结果:
图片描述

二、自定义异常类

  • 继承基类——Exception
  • 在构造函数中定义错误信息

练习:定义两个异常类,并继承基础类,然后再通过书写raise异常函数,最后使用try except打印我们的异常信息

class NumberLimitError(Exception):
    def __init__(self, message):
        self.message = message

class NameLimitError(Exception):
    def __init__(self, message):
        self.message = message

def test5(name):
    if name == 'dewei':
        raise NameLimitError('dewei不可以被填写')
    return name

def test6(number):
    if number > 100:
        raise NumberLimitError('数字不可以大于100')
    return number

print('----------------------')

try:
    test5('dewei')
except NameLimitError as e:
    print(e)

try:
    test6(1001)
except NumberLimitError as e:
    print(e)

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP