📖 知识点
raise 基础语法
raise 异常类型("异常提示文字")
核心要点:
之前:代码出错 → Python 自动抛出异常
raise:我们自己判断条件,手动制造异常
抛出的异常,同样可以用 try-except 捕获
常用异常:ValueError、IndexError、KeyError
基础示例
age = int(input("输入年龄:"))
if age < 0:
raise ValueError("年龄不能是负数!")
print(f"你的年龄是:{age}")
输入-5,程序直接抛出异常:
ValueError: 年龄不能是负数!
搭配 try-except 捕获自己抛出的异常
try:
score = int(input("输入分数:"))
if score <0 or score>100:
raise ValueError("分数必须在0~100之间!")
except ValueError as err:
print("捕获异常:", err)
⚔️ Kata 实战任务
任务需求:
定义函数
check_score(score)在函数内做判断:
如果分数 <0 或者>100:使用 raise 抛出 ValueError,提示文字:
分数必须介于0到100之间合法分数:打印
分数校验通过
使用 try-except 调用函数
测试两组:
105和88
参考代码
def check_score(score):
if score < 0 or score > 100:
raise ValueError("分数必须介于0到100之间")
print("分数校验通过")
try:
check_score(105)
except ValueError as e:
print("捕获异常:", e)
try:
check_score(88)
except ValueError as e:
print("捕获异常:", e)
运行输出:
捕获异常: 分数必须介于0到100之间
分数校验通过
🧠 思考题
什么时候适合用 raise 主动抛出异常,而不是简单 print 打印提示?
raise 抛出的异常,如果外面没有 try-except 捕获,会发生什么?