Python用户自定义异常的实现

 更新时间:2020年12月25日 16:21:19   作者:xiaobai小白  
这篇文章主要介绍了Python用户自定义异常的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

实际开发中,有时候系统提供的异常类型不能满足开发的需求。这时候你可以通过创建一个新的异常类来拥有自己的异常。异常类继承自 Exception 类,可以直接继承,或者间接继承。

常见的内置异常有:

1.自定义异常类型

#1.用户自定义异常类型,只要该类继承了Exception类即可,至于类的主题内容用户自定义,可参考官方异常类
class TooLongExceptin(Exception):
  "this is user's Exception for check the length of name "
  def __init__(self,leng):
    self.leng = leng
  def __str__(self):
    print("姓名长度是"+str(self.leng)+",超过长度了")

2.如何手动抛出异常:raise

系统的自带的异常只要触发会自动抛出,比如NameError,但用户自定义的异常需要用户自己决定什么时候抛出。
raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。大多数的异常的名字都以"Error"结尾,所以实际命名时尽量跟标准的异常命名一样。

#1.用户自定义异常类型
class TooLongExceptin(Exception):
  "this is user's Exception for check the length of name "
  def __init__(self,leng):
    self.leng = leng
  def __str__(self):
    print("姓名长度是"+str(self.leng)+",超过长度了")
 
#2.手动抛出用户自定义类型异常
def name_Test():
    name = input("enter your naem:")
    if len(name)>4:
      raise TooLongExceptin(len(name)) #抛出异常很简单,使用raise即可,但是没有处理,即捕捉
    else :
      print(name)
 
#调用函数,执行
name_Test()
-----------------执行时满足条件后抛出一个用户定义的异常如下:--------------------------------------
enter your naem:是打发斯蒂芬
Traceback (most recent call last):
姓名长度是6,超过长度了
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 21, in <module>
  name_Test()
__main__.TooLongExceptin: <exception str() failed>

3.捕捉用户手动抛出的异常

#1.捕捉用户手动抛出的异常,跟捕捉系统异常方式一样
def name_Test():
  try:
    name = input("enter your naem:")
    if len(name)>4:
      raise TooLongExceptin(len(name))
    else :
      print(name)
 
  except TooLongExceptin,e_result: #这里异常类型是用户自定义的
    print("捕捉到异常了")
    print("打印异常信息:",e_result)
 
#调用函数,执行
name_Test()
==========执行结果如下:==================================================
enter your naem:aaafsdf
捕捉到异常了
Traceback (most recent call last):
打印异常信息: 姓名长度是7,超过长度了
姓名长度是7,超过长度了
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 16, in name_Test
  raise TooLongExceptin(len(name))
__main__.TooLongExceptin: <exception str() failed>
 
During handling of the above exception, another exception occurred:
 
Traceback (most recent call last):
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 26, in <module>
  name_Test()
 File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 22, in name_Test
  print("打印异常信息:",e_result)
TypeError: __str__ returned non-string (type NoneType)

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

相关文章

  • python实现决策树分类算法代码示例

    python实现决策树分类算法代码示例

    决策树分类算法是最为常见的一种分类算法,通过属性划分来建立一棵决策树,测试对象通过在树上由顶向下搜索确定所属的分类,下面这篇文章主要给大家介绍了关于python实现决策树分类算法的相关资料,需要的朋友可以参考下
    2022-06-06
  • python 模拟在天空中放风筝的示例代码

    python 模拟在天空中放风筝的示例代码

    这篇文章主要介绍了python 模拟放风筝的示例代码,帮助大家更好的利用python处理图像,感兴趣的朋友可以了解下
    2021-04-04
  • python实现自动下载sftp文件

    python实现自动下载sftp文件

    这篇文章主要为大家详细介绍了python实现自动下载sftp文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Django把SQLite数据库转换为Mysql数据库的过程

    Django把SQLite数据库转换为Mysql数据库的过程

    之前我们默认使用的是SQLite数据库,我们开发完成之后,里面有许多数据,如果我们想转换成Mysql数据库,那我们先得把旧数据从SQLite导出,然后再导入到新的Mysql数据库里去,这篇文章主要介绍了Django如何把SQLite数据库转换为Mysql数据库,需要的朋友可以参考下
    2023-05-05
  • Python中的True,False条件判断实例分析

    Python中的True,False条件判断实例分析

    这篇文章主要介绍了Python中的True,False条件判断的用法,实例分析了针对不同数据类型的条件判断用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • Python cookbook(数据结构与算法)对切片命名清除索引的方法

    Python cookbook(数据结构与算法)对切片命名清除索引的方法

    这篇文章主要介绍了Python cookbook(数据结构与算法)对切片命名清除索引的方法,结合实例形式分析了Python字符串截取及indices方法映射序列的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • python实现简单的飞机大战

    python实现简单的飞机大战

    这篇文章主要为大家详细介绍了python实现简单的飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python包中__init__.py文件的作用与用法实例详解

    Python包中__init__.py文件的作用与用法实例详解

    我们新建python包时常常会看到一个__init _.py文件,下面这篇文章主要给大家介绍了关于Python包中__init__.py文件的作用与用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python3 pillow生成简单验证码图片的示例

    python3 pillow生成简单验证码图片的示例

    本篇文章主要介绍了python3 pillow生成简单验证码图片的示例,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • python 实现对数据集的归一化的方法(0-1之间)

    python 实现对数据集的归一化的方法(0-1之间)

    今天小编就为大家分享一篇python 实现对数据集的归一化的方法(0-1之间),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论