Day25 异常处理
1.异常处理机制
(1)什么是异常?
异常指的是程序运行过程中发生的意外错误。
比如:
尝试用 0 除以一个数(除数不能为 0);
访问不存在的文件或变量;
网络请求超时;
用户输入了无效的数据(如用字母代替数字)。
这些情况会导致程序突然终止并报错(比如显示一长串红色的错误信息),而异常处理机制就是用来捕获这些错误并处理它们的。
(2)异常处理的核心逻辑:try - catch(尝试 - 捕获)
大多数编程语言(如 Java、Python、JavaScript 等)都有类似的异常处理结构,核心由 try
、catch
(或 except
)、finally
三个部分组成。
try
块:尝试执行可能出错的代码
把「可能引发异常的代码」放在 try
块中。如果代码正常运行,就跳过 catch
块;如果出错,就「抛出异常」并跳转到对应的 catch
块。
try:num = int(input("请输入一个整数:")) # 若用户输入字母,会引发 ValueError 异常result = 10 / num # 若用户输入 0,会引发 ZeroDivisionError 异常print("计算结果:", result)
except: # 捕获所有异常(初学者可先这样写,后续再细化)print("输入有误或计算出错!")
catch
(或 except
)块:捕获并处理异常
当 try
块中的代码抛出异常时,程序会立即跳转到 catch
块,执行预先写好的「错误处理逻辑」。
可以针对不同类型的异常写多个 catch
块(如先处理文件不存在异常,再处理数值错误);
可以获取异常的具体信息(如错误原因),方便调试。
finally
块:可选的「清理操作」
无论 try
块是否发生异常,finally
块中的代码都会执行。常用于释放资源(如关闭文件、断开网络连接等)。
(3)为什么需要异常处理?
防止程序崩溃:
没有异常处理时,程序遇到错误会直接终止(比如用户输入错误导致软件闪退);有了异常处理,程序可以继续运行并提示用户。
提升用户体验:
用友好的提示(如 “请输入有效数字”)代替晦涩的错误信息,让用户知道哪里出了问题。
方便调试和维护:
可以记录异常细节(如错误类型、发生位置),帮助开发者快速定位问题。
2.debug过程中的各类报错
3.try-except机制
try:把你认为可能会出错的代码放在这里。
except:如果 try 块里的代码真的出错了(从出错开始就不会继续执行try之后的代码了),Python 就会跳到 except 块里执行这里的代码,而不是崩溃。
4.try-except-else-finally机制
try: 包含可能引发异常的代码。
except: 处理在 try 块中发生的特定异常。
else: (可选)如果 try 块中没有发生任何异常,则执行此代码块。
finally: (可选)无论 try 块中是否发生异常,总会执行此代码块。
为什么使用 else?
清晰性: 它清楚地将“主要尝试的操作(可能出错)”与“操作成功后的后续步骤”分开。
避免意外捕获: 如果把“成功后的后续步骤”也放在 try 块里,而这些步骤本身也可能引发 try 块想要捕获的同类型异常,那么就会导致逻辑混淆。else 块中的代码不会被同一个 try 块的 except 子句捕获。
@浙大疏锦行