打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python自定义异常

在Python中,抛出自定义异常的语法为raise 异常类对象。也就是说可以使用 raise语句来抛出异常, raise语句后需要跟一个异常类异常类的实例

1、使用 raise语句来抛出异常

需求:定义一个求和方法

(1)抛出异常类

python

def add(a, b):    # 如果a和b中有负数,就向调用处抛出异常    if a < 0 or b < 0:        # raise用于向外部抛出异常,后边可以跟一个异常类,或异常类的实例        # 此时返回一个异常类        raise Exception    # 正常计算并返回结果    r = a + b    return rprint(add(-123, 456))

结果如下图:可以看到没有异常描述信息

(2)抛出异常类的实例

python

def add(a, b):    # 如果a和b中有负数,就向调用处抛出异常    if a < 0 or b < 0:        # raise用于向外部抛出异常,后边可以跟一个异常类,或异常类的实例        # 此时返回一个异常类的实例        raise Exception("传入的参数不能有负数。")    # 正常计算并返回结果    r = a + b    return rprint(add(-123, 456))

结果如下图:

2、自定义异常类

自定义异常类,只需要创建一个类继承Exception即可。

(1)简单实现

python

# 自定义异常类,只需要创建一个类继承Exception即可# 自定义异常类完全不用写任何内容class MyError(Exception):    passdef add(a, b):    # 如果a和b中有负数,就向调用处抛出异常    if a < 0 or b < 0:        # raise用于向外部抛出异常,后边可以跟一个异常类,或异常类的实例        # 此时返回一个异常类的实例        raise MyError("传入的参数不能有负数。自定义的,这样也行!")    # 正常计算并返回结果    r = a + b    return rprint(add(-123, 456))

结果如下图:

(2)完整实现

需求:密码长度不足,则报异常(用户输入密码,如果输入的长度不足3位,则报错,即抛出自定义异常,并捕获该异常)。

python

# 自定义异常类,继承Exceptionclass ShortInputError(Exception):    def __init__(self, length, min_len):        # 用户输入的密码长度        self.length = length        # 系统要求的最少长度        self.min_len = min_len    # 设置抛出异常的描述信息    def __str__(self):        return f'你输入的长度是{self.length}, 不能少于{self.min_len}个字符'def main():    # 2. 抛出异常: 尝试执行:用户输入密码,如果长度小于3,抛出异常    try:        con = input('请输入密码:')        if len(con) < 3:            # 抛出异常类创建的对象            raise ShortInputError(len(con), 3)    # 3. 捕获该异常    except Exception as result:        print(result)    else:        print('密码已经输入完成')main()


__EOF__

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一篇文章带你弄懂Python异常传递和自定义异常
python自定义异常和主动抛出异常
一文读懂Python中的异常处理
python 自定义异常/raise关键字抛出异常
Python Exception处理
python中的异常处理-kouyanghao-ChinaUnix博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服