- 定义自己的异常类
在Python中,自定义异常类需要继承Exception类或其子类。自定义的异常类可以包含多种信息,如错误提示和错误代码等。定义自己的异常类可以提高代码的可读性和可维护性。下面是一个定义异常类的简单示例:
class MyException(Exception):
def __init__(self, message, code):
super().__init__(message)
self.code = code
在这个示例中,定义了一个名为MyException的异常类,它继承自Exception类。这个异常类包含两个属性:message和code。message用于保存异常信息,code用于保存异常代码。
- 抛出自定义异常类
在Python中,可以使用raise语句抛出异常。使用自定义异常类抛出异常的方法与使用内置异常类的方法相同。下面是一个抛出自定义异常类的简单示例:
def divide(a, b):
if b == 0:
raise MyException('Division by zero', 100)
return a / b
在这个示例中,定义了一个名为divide的函数。如果divisor为0,就抛出MyException异常。如果divisor不为0,就返回a / b的结果。
- 捕获自定义异常类
在Python中,可以使用try-except语句捕获异常。捕获自定义异常类的方法与捕获内置异常类的方法相同。下面是一个捕获自定义异常类的简单示例:
try:
result = divide(10, 0)
except MyException as e:
print('Exception:', e.code, e)
在这个示例中,调用了divide函数,因为第二个参数为0,所以抛出了MyException异常。在except语句中捕获MyException异常,并打印异常代码和异常信息。
- 完整示例
class MyException(Exception):
def __init__(self, message, code):
super().__init__(message)
self.code = code
def divide(a, b):
if b == 0:
raise MyException('Division by zero', 100)
return a / b
try:
result = divide(10, 0)
except MyException as e:
print('Exception:', e.code, e)
在这个示例中,定义了一个名为MyException的异常类,它包含了message和code两个属性。定义了一个名为divide的函数,如果divisor为0,就抛出MyException异常。在try语句中调用divide函数,如果抛出MyException异常,就在except语句中捕获并打印异常信息。