带有示例的 Python 用户定义异常
pythonserver side programmingprogramming更新于 2025/10/26 1:48:17
每当代码行为异常且执行突然停止时,Python 都会抛出错误和异常。Python 通过使用 try-except 语句的异常处理方法为我们提供了处理此类情况的工具。发现的一些标准异常包括 ArithmeticError、AssertionError、AttributeError、ImportError 等。
创建用户定义异常类
在这里,我们创建了一个新的异常类,即 User_Error。异常需要直接或间接地从内置 Exception 类派生。让我们看一下给定的示例,其中包含给定类中的构造函数和显示方法。
示例
# class MyError 从超类 Exception 扩展而来
class User_Error(Exception):
# 构造函数方法
def __init__(self, value):
self.value = value
# __str__ 显示函数
def __str__(self):
return(repr(self.value))
try:
raise(User_Error("User defined error"))
# Exception 的值存储在 error 中
except User_Error as error:
print('发生了新的异常:',error.value)
输出
发生了新的异常:用户定义的错误
创建用户定义的异常类(多重继承)
当单个模块处理多个不同的错误时,就会创建派生类异常。在这里,我们为该模块定义的异常创建了一个基类。此基类由各种用户定义的类继承,以处理不同类型的错误。
示例
# 定义 Python 用户定义的异常
class Error(Exception):
"""其他异常的基类"""
pass
class Dividebyzero(Error):
"""当输入值为零时引发"""
pass
try:
i_num = int(input("输入一个数字:"))
if i_num ==0:
raise Dividebyzero
except Dividebyzero:
print("输入值为零,请重试!")
print()
输出
输入一个数字:输入值为零,请重试!
创建用户定义的异常类(标准异常)
运行时错误是一个内置类,当生成的错误不属于上述类别时,就会引发该类。下面的程序解释了如何使用运行时错误作为基类,以及如何将用户定义的错误用作派生类。
示例
# 用户定义错误
class Usererror(RuntimeError):
def __init__(self, arg):
self.args = arg
try:
raise Usererror("userError")
except Usererror as e:
print (e.args)
输出
('u', 's', 'e', 'r', 'E', 'r', 'r', 'o', 'r')
结论
在本文中,我们学习了如何在 Python 3.x 或更早版本中声明和实现用户定义的异常。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

