Python十类常见异常类型(附捕获以及异常处理方式)

news/2024/5/20 13:20:36/文章来源:https://blog.csdn.net/AI19970205/article/details/130957018

目录

  • 前言
  • 十类异常
    • 1.TypeError
    • 2.ValueError
    • 3.NameError
    • 4.IndexError
    • 5.KeyError
    • 6.ZeroDivisionError
    • 7.IOError
    • 8.ImportError
    • 9.AttributeError
    • 10.KeyboardInterrupt
  • 异常捕获以及处理
  • 总结

在这里插入图片描述

前言

大家好,我是辣条哥!今天给大家讲讲我们刚开始写代码是都会出现的问题-我们刚开始常见的异常以及处理方法!

异常是指在程序运行过程中出现的错误或异常情况,例如除以0、访问不存在的变量等。Python提供了一些内置的异常类型,同时也支持自定义异常类型。

想找辣条哥的话直接戳这里,辣条之前的一些Python相关都可以拿走:在这里插入图片描述

十类异常

1.TypeError

当操作或函数应用于不适当类型的对象时引发。
例如:

a = 5 + '10'

这个例子中,我们试图将整数5和字符串’10’相加,这是不允许的,因为它们是不同的类型。

2.ValueError

当函数或操作的参数具有正确的类型但不合法时引发。
例如:

int('abc')

这个例子中,我们试图将字符串’abc’转换为整数,但是’abc’不是一个有效的整数,因此会引发ValueError异常。

3.NameError

当尝试访问一个未定义的变量时,会抛出NameError异常。
例如:

print(x)

这个例子中,我们尝试打印变量x的值,但是x没有被定义,因此会引发NameError异常。

4.IndexError

当尝试访问列表、元组或字符串中不存在的索引时引发。
例如:

a = [1, 2, 3]
print(a[3])

这个例子中,我们试图访问列表a的第四个元素,但是a只有三个元素,因此会引发IndexError异常。

5.KeyError

当尝试访问字典中不存在的键时引发。
例如:

d = {'a': 1, 'b': 2}
print(d['c'])

这个例子中,我们试图访问字典d中不存在的键’c’,因此会引发KeyError异常。

6.ZeroDivisionError

当尝试除以零时引发。
例如:

a = 5 / 0

这个例子中,我们试图将5除以0,这是不允许的,因为除数不能为零,因此会引发ZeroDivisionError异常。

7.IOError

当尝试读取不存在的文件或无法访问文件时引发。
例如:

f = open('nonexistent_file.txt', 'r')

这个例子中,我们试图打开一个不存在的文件nonexistent_file.txt,因此会引发IOError异常。

8.ImportError

当尝试导入不存在的模块或包时引发。
例如:

import nonexistent_module

这个例子中,我们试图导入一个不存在的模块nonexistent_module,因此会引发ImportError异常。

9.AttributeError

当尝试访问对象不存在的属性时引发。
例如:

s = 'hello'
print(s.uppercase())

这个例子中,我们试图调用字符串s的不存在的方法uppercase(),因此会引发AttributeError异常。

10.KeyboardInterrupt

当用户中断程序执行时引发。
例如:

while True:try:x = input('Enter a number: ')breakexcept KeyboardInterrupt:print('You pressed Ctrl+C!')

这个例子中,我们在一个无限循环中等待用户输入一个数字,但是如果用户按下Ctrl+C,程序会引发KeyboardInterrupt异常,我们可以捕获这个异常并打印一条消息。

异常捕获以及处理

在Python中,可以使用try-except语句来捕获异常并进行处理。try语句块中包含可能会出现异常的代码,如果出现异常,则会跳转到except语句块中进行处理。可以使用多个except语句块来处理不同类型的异常,也可以使用一个except语句块来处理所有类型的异常。

例如:

try:x = 1 / 0
except ZeroDivisionError:print("除以0错误")

除了使用内置的异常类型,还可以自定义异常类型。自定义异常类型通常继承自Exception类或其子类。例如:

class MyException(Exception):passtry:raise MyException("自定义异常")
except MyException as e:print(e)

在Python中,还可以使用finally语句块来定义无论是否出现异常都需要执行的代码。例如:

try:x = 1 / 0
except ZeroDivisionError:print("除以0错误")
finally:print("finally语句块")

总结

以上是Python中常见的异常类型和异常处理方法。在编写程序时,应该尽可能地避免出现异常情况,同时也应该合理地处理可能出现的异常。

↓ ↓ ↓ 下方辣条名片,各种源码+案例 ↓ ↓ ↓

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TYAN 于Computex2023 展示支持第四代英特尔至强可扩展处理器的新款服务器

【台北讯2023年5月30日】隶属神达集团,神雲科技旗下服务器通路领导品牌TYAN(泰安),于2023 台北国际计算机展(Computex 2023)5月30日至6月2日展览期间,在台北世贸南港展览1馆4楼 M0701a摊位展示最…

【C++】struct 和 class 的区别

欢迎来到博主 Apeiron 的博客,祝您旅程愉快。时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中,struct 和 class 唯一的区别就在于 默认的访问权限不同。区别如下: …

界面控件DevExpress WinForms全新的UI模板,解决各种业务线需求!

去年秋天DevExpress官方发布了一个新的 WinForms UI模板预览版(第一个EAP只提供给DevExpress宇宙版激活的用户) ,这些精炼的、随时可用的“模板”旨在启动表单设计/开发过程。有了这个模板,用户可以创建/交付现成的UI解决方案&…

MySQL进阶- SQL优化和视图

目录 SQL优化插入数据时的SQL优化(insert优化,和大批量数据插入)主键优化order by优化(排序操作的优化)group by优化(分组优化)limit优化(分页查询优化) SQL优化 插入数…

高压放大器在驱动压电陶瓷进行铝板无损检测中的应用研究

想要达成在不损害或不影响被测对象使用性能及自身性质的前提下,对被测对象内部进行缺陷,结构,失效分析,就得用到无损检测(Non Destructive Testing)技术,最常用的无损检测方法有很多&#xff0c…

软件测试总结

软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要…

Web的基本漏洞--CSRF漏洞

目录 一、CSRF漏洞介绍 1.CSRF漏洞原理 2.CSRF漏洞的类型 3.漏洞识别 4.漏洞攻击 5.CSRF漏洞的危害 6.CSRF漏洞防御 7.CSRF和XSS的区别 一、CSRF漏洞介绍 1.CSRF漏洞原理 CSRF(cross site request forgery)是指跨站请求伪造,是指利用受害者尚未…

whistle以及谷歌插件Proxy SwitchyOmega实现代理

whistle提供本地服务器,以及代理 Proxy SwitchyOmega拦截浏览器的网络请求,指向whistle服务 ip 为什么要用它们呢? 其实一开始使用的是mac的charles,但是出现了网页上传文件数据的时候会被篡改,也可能是我配置的原因…

交换机的4种网络结构方式:级联方式、堆叠方式、端口聚合方式、分层方式

交换机是计算机网络中重要的网络设备之一,用于实现局域网(LAN)内部的数据转发和通信。交换机可以采用不同的网络结构方式来满足不同的网络需求和拓扑结构。本文将详细介绍交换机的四种网络结构方式:级联方式、堆叠方式、端口聚合方…

快速实现TF03-CAN与电脑通信操作说明

目录 一、前言二、工具准备三、连接方式3.1 串口通信连接方式3.2 CAN 通信连接方式 四、TF03 与电脑通信操作说明4.1 切换为CAN通信4.2 安装 USB_CAN TOOL 驱动4.3 CAN 通信下修改波特率 五、常见问题反馈5.1 V9.11 USB-CAN tool按照上述方案发送文件指令不成功的解决方案 一、…

国产系统:麒麟之人大金仓数据库部署

一、基本信息和资源 1.1 查看服务器信息 [root7PGxjKPL4 ~]# cat /etc/*release Kylin Linux Advanced Server release V10 (Sword) DISTRIB_IDKylin DISTRIB_RELEASEV10 DISTRIB_CODENAMEjuniper DISTRIB_DESCRIPTION"Kylin V10" DISTRIB_KYLIN_RELEASEV10 DISTRI…

4、USB协议学习:USB的数据包结构

文章目录 数据包结构包(Packet)PID令牌包SETUP&OUT&IN令牌包SOF令牌包 数据包握手包ACK 握手包NAK 握手包 事务(Transaction)Setup事务OUT事务IN事务 传输(Transfer)控制传输中断传输批量传输同步传输/等时传输 端点 数据包结构 USB的通讯数据由多个传输组成&#xff0…

react antd Modal里Form设置值不起作用

问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…

C++ vector类成员函数介绍

目录 🤔vector模板介绍: 🤔特点: 🤔vector的成员函数: 🔍vector构造函数: 🔍vector赋值函数 🔍vector容器的判断函数 resize函数的重点内容: …

打造音视频极致消费体验

在观看视频时,用户最看重的是什么呢?清晰度?流畅度?还是播放时的稳定性?作为视频厂商,不仅要考虑到常见的指标,一些关乎用户体验的隐藏性指标也需要重点关注。如何持续升级优化代码并在成本和用…

【JavaSE】Java基础语法(三十八):并发工具类

文章目录 1. Hashtable2. ConcurrentHashMap基本使用3. ConcurrentHashMap1.7原理4. ConcurrentHashMap1.8原理5. CountDownLatch6. Semaphore 1. Hashtable Hashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下…

屏幕挂灯是不是智商税?明基ScreenBar Halo屏幕挂灯初体验

目录 一、屏幕挂灯是不是智商税?二、文心一言眼里的屏幕挂灯1、明基ScreenBar Halo屏幕挂灯2、屏幕挂灯和普通台灯哪个好? 三、屏幕挂灯初体验四、使用体验五、无线控制器六、专业角度分析1、屏幕工作照明,不是随便一盏灯就可以2、引导光线照…

HTTPX从入门到放弃

1. 什么是HTTPX? HTTPX是一款Python栈HTTP客户端库,它提供了比标准库更高级别、更先进的功能,如连接重用、连接池、超时控制、自动繁衍请求等等。HTTPX同时也支持同步和异步两种方式,因此可以在同步代码和异步代码中通用。 HTTP…

设计模式之~享元模式

定义: 享元模式英文称为“Flyweight Pattern”,又译为羽量级模式或者蝇量级模式。 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式&#xff0c…

javaWebssh中小学课件资源系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh中小学课件资源系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT…