python中自定义异常如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强>前言强>
有时候python自带异常不够用,如同java、python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出.python解释器是不知道用户自定义异常是什么鬼的。
<强>提高语句强>
主动抛出异常。
格式:
主动抛出异常终止程序
提高异常名称(“异常描述& # 39;)
提高RuntimeError (& # 39; testError& # 39;)
引用>
主动抛出这个异常,并加以解释。
<>强自定义异常强>
python的异常分为两种。
1,内建异常,就是python自己定义的异常。
2,不够用,用户自定义异常,
首先看看python的异常继承树
我们可以看到python的异常有个大基类。然后继承的是例外,所以我们自定义类也必须继承例外。
#最简单的自定义异常 class FError(异常): 通过才能抛出异常,用try-except抛出
试题: raise 才能;FError(“自定义异常“) except FError  as e: 打印才能(e)
在这里给一个简单的自定义异常类模版。
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自定义异常及常见异常类型强>
对于尝试…除了其他…最后…
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: 取值小于10raise抛出异常只适用于python的标准异常类
异常名称 描述
ArithmeticError 所有数值计算错误的基类
AssertionError 断言语句失败
AttributeError 对象没有这个属性
BaseException 所有异常的基类
DeprecationWarning 关于被弃用的特征的警告
EnvironmentError 操作系统错误的基类
EOFError 没有内建输入,到达EOF 标记
Exception 常规错误的基类
FloatingPointError 浮点计算错误
FutureWarning 关于构造将来语义会有改变的警告
GeneratorExit 生成器(generator)发生异常来通知退出
ImportError 导入模块/对象失败
IndentationError 缩进错误
python中自定义异常如何解决