news 2026/6/23 0:15:06

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进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 22:53:27

互联网大厂Java面试:严肃面试官与搞笑程序员的对决

场景: 在某互联网大厂的面试室,一位严肃的面试官正准备提问,而对面坐着一位看似紧张却又想显得轻松的程序员小张。 面试官:我们先来聊聊Java核心知识。第一个问题,Java中的JVM是如何管理内存的? 程序员小张…

作者头像 李华
网站建设 2026/6/23 3:53:51

测试文章标题01

测试文章内容这是一篇测试文章

作者头像 李华
网站建设 2026/6/23 19:23:15

Gulp中的数据共享与异步任务管理

在使用Gulp构建工具时,经常会遇到需要在多个任务之间共享数据的场景。尤其是在数据量较大或需要异步加载数据的情况下,如何确保数据在所有任务执行前准备就绪,是一个需要仔细处理的问题。下面我们将通过一个实际的案例来探讨如何在Gulp中实现数据共享和异步任务的管理。 项…

作者头像 李华
网站建设 2026/6/22 18:07:08

在Android中实现圆角图像加载时的闪光效果

在开发Android应用时,我们经常需要在图片加载之前提供一个占位符来改善用户体验。特别是在使用ShapeableImageView时,实现圆角图片加载是一个常见的需求。然而,当我们试图为其添加闪光效果(shimmer)作为占位符时&#…

作者头像 李华
网站建设 2026/6/23 17:29:52

确保文件上传成功的MySQL记录策略

在处理文件上传的场景中,确保文件成功上传并且能够在数据库中记录这一成功状态是一个关键任务。本文将详细介绍如何通过FTP上传文件后,记录上传结果到MySQL数据库中。 背景介绍 FTP(文件传输协议)是一种在客户端和服务器之间传输文件的网络协议。FTP使用TCP协议,这保证了…

作者头像 李华
网站建设 2026/6/23 10:44:23

深入理解AndroidX中的ConstraintLayout

引言 在Android应用开发中,用户界面的设计和布局管理是一个核心部分。随着AndroidX库的引入,许多开发者在使用ConstraintLayout时会遇到一些疑问,尤其是关于是否需要在build.gradle文件中显式声明依赖的问题。本文将深入探讨ConstraintLayout在AndroidX环境下的使用情况,并…

作者头像 李华