在Python中,`raise`关键字用于显式地引发一个异常。以下是`raise`语句的基本用法:
引发内置异常
```python
def divide(a, b):
if b == 0:
raise ValueError("除数不能为0")
return a / b
引发自定义异常
```python
class InvalidInputError(Exception):
pass
def process_name(name):
if not isinstance(name, str):
raise InvalidInputError("姓名必须是字符串类型")
return name.strip()
引发异常时附带信息
```python
def withdraw_money(balance, amount):
if amount > balance:
raise ValueError(f"余额不足!当前余额:{balance},取款金额:{amount}")
在异常处理中重新引发异常
```python
def handle_error(error_code):
try:
一些可能出错的操作
raise ValueError("原始错误")
except ValueError as e:
if error_code > 100:
raise 直接重抛原始异常
else:
raise RuntimeError("处理后的错误") from e
异常链追踪
```python
def process_data(data):
try:
return data['key']['subkey']
except KeyError as e:
raise ValueError("数据格式错误") from e
条件重抛
```python
def handle_error(error_code):
try:
一些可能出错的操作
raise ValueError("原始错误")
except ValueError as e:
if error_code > 100:
raise 直接重抛原始异常
else:
raise RuntimeError("处理后的错误") from e
`raise`语句可以与`try...except`结构结合使用,以便在特定条件下触发异常并进行异常处理。