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 块(可选):无论是否发生异常,最终都会执行,常用于释放资源(如关闭文件、数据库连接)。
@浙大疏锦行