Python程序设计基础:异常

news2024/11/15 15:51:20

文章目录

  • 一、异常的类型
  • 二、异常的处理过程

一、异常的类型

在使用Python进行程序编写时,很容易就遇到程序出错的情况,可能是引用了未定义的变量,也可能是访问了字典中不存在的键,还可能是读文件时,只读模式下读取了不存在的文件,这些错误都会导致程序终止运行并输出错误信息,而这些错误均被称作为异常。
在Python中,不同的异常被定义为不同的对象,对应不同的错误,常见的异常如下:

异常名称描述
Exception常规异常的基类
ZeroDivisionError除数为零
IOError输入\输出操作失败
IndexError序列中没有此索引(index)
KeyError映射中没有这个键
NameError未声明/初始化对象(没有属性)
IndentationError缩进错误
ValueError传递的值出现错误
KeyError请求一个不存在的字典关键字引发的错误
ImportErrorImport无法找到模块
AttributeError试图访问未知的对象属性引发的错误
TypeError类型不符合要求引发的错误
MemoryError内存不足引发的错误
SyntaxErrorPython代码非法,语法错误

当出现异常时,程序会终止运行,无法实现原有功能,若想保证原有功能实现,则需要在异常发生时及时捕获并作出处理。

二、异常的处理过程

Python中提供了try语句来进行异常的捕获与处理,其语法格式如下:

try:
    语句
except 异常名称:
    捕获异常时处理语句
else:
    未发生异常时语句

在上述内容中,当执行try下面的语句时,若出现指定的异常,则执行except子句部分进行异常处理,若未发生异常,则执行else子句部分。
要注意的是,异常处理并不能消除异常本身,而是当异常发生时,让程序按照预设的方式运行下去,避免因为异常被意外终止,不过不确定会发生的异常是什么,可以使用通用的异常名称Exception来捕获。

例如:编写一个允许连续做4次除法,并能够捕捉到输入出错时可能出现的异常的程序。
在这里插入图片描述
在这里插入图片描述
程序中,用变量i控制循环的进行,总共循环四次,主要捕获的异常为分母为0以及输入的分母不为数值类型。

例如:读取文件2.txt内容,用读模式打开,若文件不存在系统会报错。
当该文件不存在时,结果如下:
在这里插入图片描述

当该文件存在时,结果如下:
在这里插入图片描述

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

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

相关文章

【Sentinel】降级源码:插槽DegradeSlot与断路器的实现

文章目录 1、实现原理2、DegradeSlot类3、CircuitBreaker4、触发断路器 1、实现原理 Sentinel的降级是基于状态机来实现的: 2、DegradeSlot类 熔断降级的逻辑在DegradeSlot类中实现,核心API: Override public void entry(Context context,…

数字化企业可能会用到哪些系统?

数字企业依靠各种软件系统来驱动其运营、增强客户体验并实现其业务目标。这些系统可能会根据企业、行业的性质和具体目标的不同而有很大差异。以下是数字化企业使用的一些常见的软件系统类型: 1.企业资源规划 (ERP) 系统: ERP 系统集成了财务、人力资源…

【Dots之009】WriteGroup

一、WriteGroup基础知识 WriteGroup是一个属性标签,在ECS的代码中可以用于修饰组件; 格式如下: [WriteGroup(typeof(T))]那么接下来看几段代码进行理解; 1、定义几个组件 struct ScaleComponentData : IComponentData {publi…

日流量200亿,携程网关的架构设计

说在前面 在40岁老架构师 尼恩的读者社区(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 就在昨天,尼恩指导一个小伙伴简历,写了一个《高并发 Netty网关项目》,此项目帮这个小伙拿到 字…

电脑c盘变红满了怎么清理?4个方法轻松清理!

“我的电脑才用了不到一年,现在就已经满了!电脑c盘变红满了应该怎么清理呢?有什么方法能帮我清理的干净一点吗?希望大家给我出出主意。” 随着我们使用电脑时间的增多,电脑C盘可能会变得满满当当,这会不仅会…

失效的访问控制及漏洞复现

失效的访问控制(越权) 1. 失效的访问控制(越权) 1.1 OWASP TOP10 1.1.1 A5:2017-Broken Access Control 未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其…

高速信号应如何走线?这些规则千万别走错

提起高速信号的设计与布线,可能很多工程师都能头头是道,但放在实际设计中却大部分不可行,这篇文章将向电子工程师介绍一些关键规则,确保在电路板上传输高速信号时获得最佳性能,注意这些规则千万别走错! 1、…

Java后端开发面试题——JVM虚拟机篇

目录 什么是程序计数器? 你能给我详细的介绍Java堆吗? 什么是虚拟机栈 1. 垃圾回收是否涉及栈内存? 2. 栈内存分配越大越好吗? 3. 方法内的局部变量是否线程安全? 4.什么情况下会导致栈内存溢出? 5.堆栈的区别…

Weblogic SSRF【漏洞复现】

文章目录 漏洞测试注入HTTP头,利用Redis反弹shell redis不能启动问题解决 Path : vulhub/weblogic/ssrf 编译及启动测试环境 docker compose up -dWeblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi…

Unity设置TextMeshPro文本超出范围显示...

TextMtshPro文本超出范围,展示省略。选择Overflow为Ellipsis。

链表的中间节点(每日一题)

“路虽远,行则将至” ❤️主页:小赛毛 ☕今日份刷题:移除链表元素 题目描述: 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例1: 输入&#…

AI数据标注迈入自动化时代,26年老兵掘金全球智能汽车市场

4D数据标注,掀起了业界新风向。 一是以BEV为代表的感知技术,输出的空间从2D透视图像转换到了3D空间+时序维度,4D标注应运而生;二是4D标注借助点云级别或object级别的重建,通过人工标注积累原始数据&#x…

Calico BGP通信分析

Calico BGP通信分析 BGP网络模型 BGP网络相比较IPIP网络,最大的不同之处就是没有隧道设备tunl0,pod之间的流量直接从宿主机通过arp下一跳到目的地宿主机,减少了tunl0环节 BGP两种模式: 全互联模式(node-to-node mesh)——全互联…

批量采集的时间管理与优化

在进行大规模数据采集时,如何合理安排和管理爬取任务的时间成为了每个专业程序员需要面对的挑战。本文将分享一些关于批量采集中时间管理和优化方面的实用技巧,帮助你提升爬虫工作效率。 1. 制定明确目标并设置合适频率 首先要明确自己所需获取数据的范…

陇剑杯2023WriteUp学习笔记【初赛】

文章目录 数据分析1、hard_webhard_web_1hard_web_2hard_web_3 2、sevrer savesevrer save_1sevrer save_2sevrer save_3sevrer save_4sevrer save_5sevrer save_6sevrer save_7sevrer save_8 3、WiresharkWireshark1_1Wireshark1_2Wireshark1_3Wireshark1_4 4、Incidentrespon…

C++信息学奥赛1187:统计字符数

#include <bits/stdc.h> using namespace std; int main() {string arr;cin >> arr; // 输入一个字符串int n, a, max; // 定义变量n, a, maxchar ArrMax; // 定义字符变量ArrMaxn arr.length(); // 获取字符串长度max a 0; // 初始化max和a为0// 外层循环&…

GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程

详情点击链接&#xff1a;GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程 前沿 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域&#xff1a;1、编程建议和示例代码: 无论你使用的编程语言是Py…

Java多线程篇(1)——深入分析synchronized

文章目录 synchronized原理概述锁升级 初始状态偏向锁偏向锁获取/重入偏向锁的撤销/重偏向和升级批量重偏向和批量偏向撤销偏向锁的释放 轻量级锁轻量级锁获取/重入轻量级锁膨胀轻量级锁释放 重量级锁重量级锁获取/重入重量级锁释放重量级锁的降级 其他锁粗化、锁消除调用hashc…

Elasticsearch 中的向量搜索:设计背后的基本原理

作者&#xff1a;ADRIEN GRAND 实现向量数据库有不同的方法&#xff0c;它们有不同的权衡。 在本博客中&#xff0c;你将详细了解如何将向量搜索集成到 Elastisearch 中以及我们所做的权衡。 你有兴趣了解 Elasticsearch 用于向量搜索的特性以及设计是什么样子吗&#xff1f; …

【ROS】例说mapserver静态地图参数(对照Rviz、Gazebo环境)

文章目录 例说mapserver静态地图参数1. Rviz中显示的地图2. mapserver保存地图详解3. 补充实验 例说mapserver静态地图参数 1. Rviz中显示的地图 在建图过程中&#xff0c;rviz会显示建图的实时情况&#xff0c;其输出来自于SLAM&#xff0c;浅蓝色区域为地图大小&#xff0c…