Python实现自定义异常实例

 更新时间:2022年01月27日 14:26:58   作者:繁华似锦Fighting  
大家好,本篇文章主要讲的是Python实现自定义异常实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

前言

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

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

需求:定义一个求和方法

(1)抛出异常类

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


print(add(-123, 456))

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

(2)抛出异常类的实例

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


print(add(-123, 456))

结果如下图:

2、自定义异常类

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

(1)简单实现

# 自定义异常类,只需要创建一个类继承Exception即可
# 自定义异常类完全不用写任何内容
class MyError(Exception):
    pass

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


print(add(-123, 456))

结果如下图:

(2)完整实现

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

# 自定义异常类,继承Exception
class 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()

总结

到此这篇关于Python实现自定义异常实例的文章就介绍到这了,更多相关Python自定义异常内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 调用 C++ 传递numpy 数据详情

    Python 调用 C++ 传递numpy 数据详情

    这篇文章主要介绍了Python 调用 C++ 传递numpy 数据详情,文章主要分为两部分,c++代码和python代码,代码分享详细,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • python实现图像降噪

    python实现图像降噪

    这篇文章主要为大家详细介绍了python实现图像降噪,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • python 调用win32pai 操作cmd的方法

    python 调用win32pai 操作cmd的方法

    下面小编就为大家带来一篇python 调用win32pai 操作cmd的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • python实现文本进度条 程序进度条 加载进度条 单行刷新功能

    python实现文本进度条 程序进度条 加载进度条 单行刷新功能

    这篇文章主要介绍了python实现文本进度条 程序进度条 加载进度条 单行刷新功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • PyQt中实现自定义工具提示ToolTip的方法详解

    PyQt中实现自定义工具提示ToolTip的方法详解

    这篇文章主要为大家详细介绍了PyQt中实现自定义工具提示ToolTip的方法详解,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • python数据清洗中的时间格式化实现

    python数据清洗中的时间格式化实现

    本文主要介绍了python数据清洗中的时间格式化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Django实现文件上传下载

    Django实现文件上传下载

    这篇文章主要为大家详细介绍了Django实现文件上传下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • pycharm远程连接服务器调试tensorflow无法加载问题

    pycharm远程连接服务器调试tensorflow无法加载问题

    最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错,本文就来介绍一下如何解决,感兴趣的可以了解一下
    2021-06-06
  • python为QT程序添加图标的方法详解

    python为QT程序添加图标的方法详解

    这篇文章主要介绍了python为QT程序添加图标的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Python http接口自动化测试框架实现方法示例

    Python http接口自动化测试框架实现方法示例

    这篇文章主要介绍了Python http接口自动化测试框架实现方法,结合实例形式分析了Python针对http接口测试的相关实现与使用操作技巧,需要的朋友可以参考下
    2018-12-12

最新评论