在 Python 中,可以使用 raise 语句来抛出异常。异常是 Python 的一类对象,用于表示程序中的错误或特殊情况。可以抛出内置的异常类,或者定义自定义的异常类。

抛出内置异常

你可以使用内置的异常类(如 ValueErrorTypeErrorKeyError 等)来抛出异常。例如:

1
2
3
4
5
6
7
8
9
def divide(a, b):
if b == 0:
raise ZeroDivisionError("不能除以0")
return a / b

try:
result = divide(10, 0)
except ZeroDivisionError as e:
print(f"发生异常: {e}")

自定义异常

你也可以定义自己的异常类,通常通过继承 Exception 类来创建。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
class MyCustomError(Exception):
def __init__(self, message):
self.message = message

def process_value(value):
if value < 0:
raise MyCustomError("值不能是负数")
return value

try:
process_value(-10)
except MyCustomError as e:
print(f"自定义异常: {e.message}")

在这个例子中,MyCustomError 是一个自定义异常,当输入值为负数时会被抛出。

使用 raise 重新抛出异常

有时候在捕获异常后,还希望将它重新抛出。可以直接用 raise 重新抛出捕获的异常:

1
2
3
4
5
try:
raise ValueError("出现了一个错误")
except ValueError as e:
print(f"捕获异常: {e}")
raise # 重新抛出异常

这会使异常在被捕获后再次被抛出,使程序继续中止或传递给更高层的异常处理逻辑。

通过以上方法,你可以灵活地在 Python 中抛出和处理异常。