news 2026/1/12 8:59:33

Day 27 异常处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day 27 异常处理

Python 中的try-except机制是异常处理的核心,用于捕获和处理程序运行时的错误(如语法正确但执行失败的情况,例如除零、索引越界、文件不存在等),避免程序直接崩溃,同时允许开发者自定义错误处理逻辑。

1. 异常(Exception)

程序运行时发生的错误事件,例如:

  • ZeroDivisionError:除零错误
  • IndexError:索引越界
  • KeyError:字典键不存在
  • FileNotFoundError:文件未找到
  • TypeError:类型不匹配
  • ValueError:值无效

2.基本语法结构

try: # 可能引发异常的代码块(受保护的代码) risky_code() except [异常类型1] [as 变量名]: # 捕获到异常类型1时执行的处理逻辑 handle_error1() except [异常类型2] [as 变量名]: # 捕获到异常类型2时执行的处理逻辑 handle_error2() else: # 可选:try块无异常时执行 no_error_code() finally: # 可选:无论是否发生异常,最终都会执行(常用于资源释放) cleanup_code()

3. try 块

包裹可能触发异常的代码(如文件操作、网络请求、数值计算等)。只要该块内任意一行代码触发异常,后续代码会立即中断,跳转到对应的except块。

4.except 块

(1)基础用法:捕获指定异常
try: result = 10 / 0 # 触发 ZeroDivisionError except ZeroDivisionError: print("错误:除数不能为0")
(2)捕获多个异常
try: lst = [1, 2, 3] print(lst[5]) # 触发 IndexError # print(10 / "a") # 触发 TypeError except IndexError: print("错误:索引超出范围") except TypeError: print("错误:类型不匹配")

try: lst = [1, 2, 3] print(lst[5]) except (IndexError, TypeError): print("索引或类型错误")
(3)捕获所有异常
try: risky_code() except: # 捕获所有异常(包括 KeyboardInterrupt、SystemExit 等) print("发生了未知错误")

该机制中还有else 块(可选):仅当try块无异常时执行,常用于后续正常逻辑;以及finally 块(可选):无论是否发生异常,最终都会执行,常用于释放资源(如关闭文件、数据库连接)。

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!