python中自定义异常如何解决

  

python中自定义异常如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>前言

有时候python自带异常不够用,如同java、python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出.python解释器是不知道用户自定义异常是什么鬼的。

<强>提高语句

主动抛出异常。

格式:

主动抛出异常终止程序

提高异常名称(“异常描述& # 39;)

提高RuntimeError (& # 39; testError& # 39;)

 python中自定义异常如何解决

主动抛出这个异常,并加以解释。

<>强自定义异常

python的异常分为两种。

1,内建异常,就是python自己定义的异常。

2,不够用,用户自定义异常,

首先看看python的异常继承树

 python中自定义异常如何解决

我们可以看到python的异常有个大基类。然后继承的是例外,所以我们自定义类也必须继承例外。

#最简单的自定义异常   class  FError(异常):   通过才能

抛出异常,用try-except抛出

试题:   raise 才能;FError(“自定义异常“)   except  FError  as  e:   打印才能(e)

 python中自定义异常如何解决

在这里给一个简单的自定义异常类模版。

class  CustomError(异常):   def 才能__init__(自我,ErrorInfo):   ,,,超级(). __init__(自我),#初始化父类   ,,,self.errorinfo=ErrorInfo   def 才能__str__(自我):   ,,,return  self.errorinfo      if  __name__ ==, & # 39; __main__ # 39;:   尝试才能:   ,,,raise  CustomError(& # 39;客户异常& # 39;)   except 才能;CustomError  as  e:   ,,,印刷(e)

 python中自定义异常如何解决

<强>补充知识: <强> python自定义异常及常见异常类型

对于尝试…除了其他…最后…

def  self_error (type_list):   ,“““异常处理函数   ,传入一个可迭代对象,处理参数传入错误情况   ,:paramtype_list:一个可迭代对象   ,“““   ,试一试:   ,for 小姐:type_list拷贝:   打印(i)才能   ,除了:   ,打印(“不是可迭代对象“)   ,其他的:   ,打印(“没有发生错误“)   ,最后:   ,打印(“程序运行结束“)   self_error (“abc")   “““   一个   b   c   没有发生错误   程序运行结束“;”;“   self_error (2)   “““不是可迭代对象   程序运行结束“““

由程序可以看出如果试部分顺利执行,则会执行其他的部分,如果试部分出现错误则会执行除了部分,但是两种情况最后都输出了最后部分。当然,其他和最后部分是可以省略的。我们可以自定义输出错误类型,需要用到提高函数。

def  self_error (type_num):   “““才能异常处理函数   ,,   自才能定义异常函数,用于抛出异常   ,,:paramtype_num:用于判断是否抛出异常的值   ,,:return 异常信息,   “才能”;“   if 才能;type_num<10:   ,,raise  ValueError(“取值小于10“)   其他的才能:   ,,return  200   ,if  __name__==癬_main__":   ,self_error (11), # 200    self_error(9) #ValueError: 取值小于10

raise抛出异常只适用于python的标准异常类

异常名称 描述

ArithmeticError 所有数值计算错误的基类

AssertionError 断言语句失败

AttributeError 对象没有这个属性

BaseException 所有异常的基类

DeprecationWarning 关于被弃用的特征的警告

EnvironmentError 操作系统错误的基类

EOFError 没有内建输入,到达EOF 标记

Exception 常规错误的基类

FloatingPointError 浮点计算错误

FutureWarning 关于构造将来语义会有改变的警告

GeneratorExit 生成器(generator)发生异常来通知退出

ImportError 导入模块/对象失败

IndentationError 缩进错误

python中自定义异常如何解决