【Python】异常处理 ② ( 异常类型简介 | 捕获并处理指定异常 | 捕获多个类型异常 )

news2025/1/18 10:55:06

文章目录

  • 一、Python 捕获指定类型异常
    • 1、异常类型简介
    • 2、捕获并处理指定异常
    • 3、代码实例 - 捕获并处理指定异常
    • 4、代码实例 - 异常捕获失败案例
  • 二、Python 捕获多个类型异常
    • 1、捕获多个异常语法
    • 2、代码实例 - 捕获多个异常





一、Python 捕获指定类型异常




1、异常类型简介


Python 中的 异常 由 异常类 Exception Class 表示 , 每个异常类都代表一个特定的错误类型 ;

常见的 异常类 :

  • FileNotFoundError : 表示打开一个不存在的文件错误 ;
  • ZeroDivisionError : 表示除以零的错误 ;
  • ValueError : 表示一个无效的值 ;
  • KeyError : 表示在字典中不存在指定的键 ;
  • IndexError : 表示在列表或元组中不存在指定的索引 ;
  • IOError : 表示 I/O 错误 , 例如无法读取或写入文件 ;

当发生异常时 , 程序会停止执行当前语句 , 并跳转到异常处理程序 Exception Handler , 该程序负责处理异常并防止程序崩溃 ;

在 Python 中 , 可以使用 try-except 语句来 捕获 和 处理异常 ;


2、捕获并处理指定异常


在 Python 中 , 可以捕获指定类型的异常 , 语法如下 :

try:
	可能出现异常的代码块
except 异常类型 as 异常别名:
	出现异常后执行的代码块
	可使用异常别名获取异常对象
	

3、代码实例 - 捕获并处理指定异常


代码示例 :

"""
文件操作 代码示例
"""

try:
    open("file3.txt", "r", encoding="UTF-8")
except FileNotFoundError as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {e}")
    open("file3.txt", "w", encoding="UTF-8")

执行结果 :

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
出现异常, 进行异常处理, 异常内容 : [Errno 2] No such file or directory: 'file3.txt'

Process finished with exit code 0

在这里插入图片描述


4、代码实例 - 异常捕获失败案例


如果捕获异常时 , 没有捕获到正确的异常 , 则异常仍然会爆出 , 程序会被终止 ;

在下面的代码中 , 捕获的是 FileNotFoundError , 如果出现了其他类型的异常 , 如 ZeroDivisionError , 则会直接导致程序停止运行 ;

下面的代码中执行了 num = 1 / 0 代码 , 会报 ZeroDivisionError 异常 ;


代码示例 :

"""
文件操作 代码示例
"""

try:
    num = 1 / 0
    open("file3.txt", "r", encoding="UTF-8")
except FileNotFoundError as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {e}")
    open("file3.txt", "w", encoding="UTF-8")

执行结果 :

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
Traceback (most recent call last):
  File "/Users/zyq/PycharmProjects/Hello/main.py", line 6, in <module>
    num = 1 / 0
ZeroDivisionError: division by zero

Process finished with exit code 1





二、Python 捕获多个类型异常




1、捕获多个异常语法


捕获多个异常语法 :

try:
	可能出现异常的代码块
except (异常类型1, 异常类型2, 异常类型3, ...) as 异常别名:
	出现异常后执行的代码块
	可使用异常别名获取异常对象

2、代码实例 - 捕获多个异常


在下面的代码中可能出现 FileNotFoundError, ZeroDivisionError 两种异常 , 在进行异常捕获时同时捕获这两种异常 ;

执行时 , 如果出现了这两种异常中的一种, 异常会被捕获 , 并进行处理 ;


代码示例 :

"""
文件操作 代码示例
"""

try:
    num = 1 / 0
    open("file3.txt", "r", encoding="UTF-8")
except (FileNotFoundError, ZeroDivisionError) as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {e}")

执行结果 :

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
出现异常, 进行异常处理, 异常内容 : division by zero

Process finished with exit code 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/678044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

原生HTML+CSS+JS制作自己的导航主页

如果你想使用原生HTML、CSS和JS制作自己的导航主页&#xff0c;你可以按照以下步骤进行操作&#xff1a; 先看效果图&#xff1a; 创建HTML文件&#xff1a;首先&#xff0c;创建一个新的HTML文件&#xff0c;并在文件中添加基本的HTML结构。你可以使用<!DOCTYPE html>…

【软件设计师暴击考点】计算机组成原理与体系结构高频考点暴击系列【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软件…

【Python】怎样能够除去三维图中超出坐标轴范围内的图形(绘制一个三维地形图,需要求大于某一个水平高度的区域)

要除去三维图中超出坐标轴范围内的图形&#xff0c;可以通过设置绘图参数和使用条件筛选来实现。下面是一种常用的方法&#xff1a; 绘制三维地形图&#xff0c;确保数据和坐标轴设置正确。选择图形对象&#xff08;例如&#xff0c;地形曲面&#xff09;并进入编辑模式。找到…

【博弈论笔记】第六章 不完全信息静态表示

文章目录 第六章 不完全信息静态表示6.1 不完全信息静态博弈和贝叶斯纳什均衡6.1.1 不完全信息静态博弈的例子6.1.2 不完全信息静态博弈的一般表示6.1.3 海萨尼均衡6.1.4 贝叶斯纳什均衡 6.2 暗标拍卖Summary 此部分博弈论笔记参考自经济博弈论&#xff08;第四版&#xff09;/…

YOLOV1论文解读及代码讲解

YoloV1论文解读 摘要 我们提出了一种新的物体检测方法&#xff1a;YOLO。之前的物体检测工作都是重新利用分类器来执行检测。相反&#xff0c;我们将物体检测视为一个回归问题&#xff0c;针对空间分离的边界框和相关类别概率。一个单一的神经网络可以在一次评估中直接从完整…

第3章 运输层

1​、在 ISO/OSI 参考模型中&#xff0c;对于运输层描述正确的有&#xff08; &#xff09; A. 为传输数据选择数据链路层所提供的最合适的服务B. 为系统之间提供面向连接的数据传输服务C. 可以提供端到端的差错恢复和流量控制&#xff0c;实现可靠的数据传输D. 提供路由选择…

Python基础篇(十):迭代器与生成器

前言 迭代器和生成器是Python中用于处理可迭代对象的重要概念。它们提供了一种有效的方式来遍历和访问集合中的元素&#xff0c;同时具有节省内存和惰性计算的特点。下面是关于迭代器和生成器的详细介绍和示例&#xff1a; 1. 迭代器&#xff08;Iterator&#xff09; 迭代器…

干货 | 水文数据跨域分级安全管理

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。 一、研究背景 水文和水利都是国民经济建设和社会发展的基础信息资源&#xff0c;对于水文数据来说&#xff0c;它更加偏生态性&#xff0c;比如流域的情况&#xff0c;主要影响在政府政策制定。…

html学习笔记02-基础,元素

https://www.runoob.com/html/html-basic.html // HTML 标题&#xff08;Heading&#xff09;是通过h1 - h6 标签来定义的。 <h1>这是一个标题1</h1> <h2>这是一个标题2</h2> <h3>这是一个标题3</h3>这是一个标题1 这是一个标题2 这是一…

第8讲:$.ajax方法使用详解

jQuery对象上面定义了Ajax方法&#xff08;$.ajax()&#xff09;&#xff0c;用来处理Ajax操作。调用该方法后&#xff0c;浏览器就会向服务器发出一个HTTP请求。ajax方法有很多属性&#xff0c;但并非每次调用都要使用所有属性&#xff0c;本讲详细介绍了每个属性的作用&#…

SpringBoot项目中使用Tomcat、Undertow、jetty等容器

文章目录 SpringBoot项目中使用Tomcat、Undertow、jetty等容器&#xff1b;1. 默认使用Tomcat容器&#xff0c;直接运行项目即可&#xff1a;Java -jar xxx.jar2. 使用undertow容器2-1 引入Maven依赖&#xff0c;同时屏蔽内置Tomcat2-2 Undertow容器的常用配置参考2-3 一个特别…

常见的端口后续网络链接问题及解决办法

路由器中设置端口映射的主要作用&#xff0c;就是让Internet上的其他用户&#xff0c;可以访问你路由器下面电脑中的数据(软件、文件)。假设现在外网有一台ADSL直接拨号上网的电脑&#xff0c;所获得的是公网IP。然后它想访问局域网内的电脑上面的网站&#xff0c;那么就需要在…

C语言中有关char数组和char指针的区别

有关 C语言中字符数组和字符指针之间的区别&#xff0c;让我们先看一下下面的例子&#xff1a; void test() {//arr is array of characterschar arr[12] "Aticleworld";//ptr is pointer to charchar *ptr "Aticleworld"; } 现在&#xff0c;让我们比较…

合宙Air724UG Cat.1模块硬件设计指南--键盘接口

键盘接口 简介 在电路设计中&#xff0c;通常需要较多的外部输入&#xff0c;如果每个按键都单独去占用一个IO接口&#xff0c;就会非常浪费资源&#xff0c;为了减少I/O口的占用&#xff0c;通常将按键排列成矩阵形式&#xff0c;即矩阵键盘。 特性 KEYIN0。扫描键盘输入0&am…

【博弈论笔记】第五章 完全但不完美信息动态博弈

文章目录 第五章 完全但不完美信息动态博弈5.1 不完美信息动态博弈5.1.1 相关概念5.1.2 不完美信息动态博弈的表示5.1.3 不完美信息动态博弈的子博弈 5.2 完美贝叶斯均衡5.2.1 完美贝叶斯均衡的定义5.2.2 关于判断形成的进一步理解 5.3 单一价格二手车博弈模型5.3.1 单一价格二…

Windows下Java环境配置教程

✨博客主页: XIN-XIANG荣 ✨系列专栏:【Java SE】 ✨一句短话: 难在坚持,贵在坚持,成在坚持! ✨博客说明: 尽己所能&#xff0c;把每一篇博客写好&#xff0c;帮助自己熟悉所学知识&#xff0c;也希望自己的这些内容可以帮助到一些在学习路上的伙伴&#xff0c;文章中如果发现错…

排序算法——归并排序(递归与非递归)

归并排序 以升序为例 文章目录 归并排序基本思想核心步骤递归写法实现代码 非递归处理边界情况实现代码 时间复杂度 基本思想 归并排序是建立在归并操作上的一种有效的排序算法&#xff0c;该算法是采用分治法的一个非常典型的应用&#xff1a;将已有序的子序列合并&#xff…

python:并发编程(十九)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇一&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…

跨模态检索论文阅读:(PTP)Position-guided Text Prompt for Vision-Language Pre-training

(PTP)Position-guided Text Prompt for Vision-Language Pre-training 视觉语言预训练的位置引导文本提示 摘要 视觉语言预训练(VLP)已经显示出将图像和文本对统一起来的能力&#xff0c;促进了各种跨模态的学习任务。 然而&#xff0c;我们注意到&#xff0c;VLP模型往往缺乏…

Redis 2023面试5题(五)

一、Redis主节点岩机导致数据全部丢失怎么恢复数据 1. 备份恢复&#xff1a; 如果你已经设置了定期备份&#xff0c;可以使用备份文件进行恢复。首先&#xff0c;停止Redis服务器&#xff0c;将备份文件复制到Redis数据目录中&#xff0c;然后启动Redis服务器。这将恢复备份时…