在 Python 中,raise 语句用于显式触发异常,是错误处理机制的核心组件。其核心用法和特性如下:
🔥 基础语法
raise ExceptionType("错误描述") 抛出指定类型异常
⚙️ 主要功能
-
抛出内置异常
if age < 0: raise ValueError("年龄不能为负数") -
触发自定义异常
class PaymentError(Exception): 继承Exception pass if balance < amount: raise PaymentError("余额不足") -
重新抛出当前异常
try: risky_operation() except Exception as e: logger.error(f"操作失败: {e}") raise 保留原始堆栈信息重新抛出 -
异常链(
from子句)try: connect_db() except ConnectionError as e: raise ServiceError("服务不可用") from e 保留原始异常上下文
🛠️ 高级用法
带额外信息的异常
class AuthError(Exception):
def __init__(self, code, message):
self.code = code
super().__init__(message)
if not valid_token:
raise AuthError(401, "令牌无效")
📝 最佳实践
精确异常类型
优先使用具体异常类型(如FileNotFoundError而非通用Exception)-
清晰错误消息
不推荐 raise ValueError("无效输入") 推荐 raise ValueError(f"输入值'{user_input}'超出有效范围(0-100)") 保留异常上下文
调试时优先使用raise ... from ...而非单独raise
raise机制使程序能主动控制错误流程,结合try-except实现健壮的异常处理体系。