Python异常知多少以及如何处理?

Python 异常知多少 异常会让我们的程序跳出正常的运行,异常给我们带来的损失,不容小觑.我们经常听到的是机器的异常.比如工厂流水线上的机器设备,某个零件出问题了,机器不能正常运行或者生产流程错乱;快递分拣设备传送带出现断裂,或者电机出现问题不能正常分拣;还有我们现在最火的自动驾驶汽车,如果汽车在路上行驶时雷达失灵.程序错乱.摄像头设备无法正常检测识别,等等.这些都是异常.如果不能快速排除异常,不但会导致生产停滞,还威胁到生命安全,会造成很大的损失. 阅读详情

本文主要是认识python的异常有哪些类型,以及如何进行python异常处理?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。如果有其它编程语言经验,如Java,可以理解的更深入些。

 

 

 

 

 

Python资源共享群:626017123

我们知道,异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件),现代编程语言都有这种保证机制,以保证程序整体的运行稳健……废话少说,来看看Python的异常以及相关处理。

1.异常的类型

异常的类型多种多样,常见的异常有:

AttributeError 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportError 无法引入模块或包;基本上是路径问题或名称错误IndentationError 语法错误(的子类) ;代码没有正确对齐IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]KeyError 试图访问字典里不存在的键KeyboardInterrupt Ctrl+C被按下NameError 尝试访问一个没有申明的变量SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)TypeError 传入对象类型与要求的不符合UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它ValueError 传入一个调用者不期望的值,即使值的类型是正确的

其他的异常:

Exception可以捕获任意异常

BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类StopIteration 迭代器没有更多的值GeneratorExit 生成器(generator)发生异常来通知退出StandardError 所有的内建标准异常的基类ArithmeticError 所有数值计算错误的基类FloatingPointError 浮点计算错误OverflowError 数值运算超出最大限制ZeropisionError 除(或取模)零 (所有数据类型)AssertionError 断言语句失败AttributeError 对象没有这个属性EOFError 没有内建输入,到达EOF 标记EnvironmentError 操作系统错误的基类IOError 输入/输出操作失败OSError 操作系统错误WindowsError 系统调用失败ImportError 导入模块/对象失败LookupError 无效数据查询的基类IndexError 序列中没有此索引(index)KeyError 映射中没有这个键MemoryError 内存溢出错误(对于Python 解释器不是致命的)NameError 未声明/初始化对象 (没有属性)UnboundLocalError 访问未初始化的本地变量ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError 一般的运行时错误NotImplementedError 尚未实现的方法SyntaxError Python 语法错误IndentationError 缩进错误TabError Tab 和空格混用SystemError 一般的解释器系统错误TypeError 对类型无效的操作ValueError 传入无效的参数UnicodeError Unicode 相关的错误UnicodeDecodeError Unicode 解码时的错误UnicodeEncodeError Unicode 编码时错误UnicodeTranslateError Unicode 转换时错误Warning 警告的基类DeprecationWarning 关于被弃用的特征的警告FutureWarning 关于构造将来语义会有改变的警告OverflowWarning 旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning 关于特性将会被废弃的警告RuntimeWarning 可疑的运行时行为(runtime behavior)的警告SyntaxWarning 可疑的语法的警告UserWarning 用户代码生成的警告

2.捕获异常,处理异常

只有将对应的异常类型捕获才能进行异常的处理

异常的捕获处理方式:

try: 
 #程序执行的代码,异常检测的代码 
 pass 
except Exception as e: 
 #捕获异常后进行的代码, 
 print(e) 
 pass 
else: 
 #没有捕获到相应的异常后进行的代码 
 pass 
finally: 
 #不论有没有异常捕获最后都要执行的代码 
 pass 

这里的except就像是java里的catch

也可以在代码中添加多个except语句来捕获不同种类型的异常,执行相应不同的操作

3.主动抛出异常

异常的抛出可以手动添加

try: 
 raise Exception("我自己抛的") 
except Exception as e: 
 print(e)#这里会输出“我自己抛的” 

4.自定义异常类型

在实际编程中,语言内置的异常并不总够用,所有,我们可以自己定义自己所需要的异常的类型。可以这样来实现。

主要利用类中的__str__方法实现

class myException(BaseException): 
 def __init__(self,message): 
 self.message=message 
 def __str__(self): 
 return self.message 
  
try: 
 raise myException('自定义的异常类型') 
except myException as e: 
 print(e)  

5.断言

断言assert用于判断某个条件是否成立,如果不成立则抛出AssertionError异常,该异常可以捕获。

示例如下:

assert 条件 
类如: 
assert 1 == 1 
assert 2 + 2 == 2 * 2 
assert len(['my list', 12]) < 10 
assert range(3) == [0, 1, 2] 
#相当于 
if not 条件 : 
 raise AssertionError() 
  
assert 条件,"描述" 
#相当于 
if not 条件 : 
 raise AssertionError("描述") 

下面是我们如何用 try-except 语句捕获 AssertionError 异常:

try: 
 assert 1 == 0, 'One does not equal zero silly!' 
except AssertionError, args: 
 print(args.__class__.__name__, ":",args) 

以上就是python的异常以及相关处理。相信你在进行Python编程时,若有异常问题,以上内容,足以帮助你来处理啦。

Visual Studio Installer下载失败的5种修复方法(含DNS修改/补丁安装) 本文针对Visual Studio Installer下载安装文件失败的问题,提供了从网络层到系统层的深度排查与修复指南。详细介绍了DNS修改、代理配置、防火墙设置、系统服务检查等5种核心修复方法,并包含离线安装与手动补丁等替代方案,帮助开发者彻底解决安装难题。 阅读详情

相关推荐

SAP 物料账前期没有运行的解决方法

If you use the actual costing (material ledger), you must have completely closed all period-end closing operations in the actual costing for the penultimate period prior to the period shift. Use the '...

含笑饮砒霜死后更嚣张 3316

Python异常及处理方法总结

调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正;另一方面,有些异常是不可避免的,但我们可以对异常进行捕获处理,防止程序终止。 1 异常类型 1.1 Python内置异常 Python的异常处理能力是很强大的,它有很多内置异常,可向用户准确反馈出错信息。在Python中,异常也...

polyhedronx的博客 7万+

S7-1200PLC期末复习题(第七章)

A.0 B.1 C.4 D.-4 A、CV = 0 B、CV = 1 C、CV < 4 D、CV >= 4A、0,0 B、3,0 C、1,1 D、3,1 A、0 B、1 C、先是1,再变为0 D、先是0,再变为1置位输出:常开触点M0.0闭合,Q0.0变为1状态并保存该状态,即使M0.0断开,Q0.0也保持1状态。 复位输出:常开触点M0.1闭合时,Q0.0变为0状态并保持该状态,即使M0.1断开,Q0.0也保持为0状态。 A、1 B、0 C、5 D、10RESET_BF指令需要两个参数,第一个是复位的位数

qq_52251819的博客 4420

Python 常见的 10 个错误及其解决方法

更多Python学习内容:ipengtao.com当编写 Python 代码时,难免会遇到各种错误和异常。这些错误可能会导致程序崩溃或产生意外的行为。在本文中,将深入探讨 Python 中的一些常见错误,包括错误类型、原因和解决方法,以帮助你更好地理解和处理这些问题。

涛哥聊Python 6036

基于激光雷达的目标跟随功能移植到自己的ROS机器人小车上

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、下载目标跟随的源码二、修改话题名称1.修改/cmd_vel话题名称2.修改/scan话题名称3.修改双电机正反转4.目标跟随功能测试 前言 本人尝试把github上的一个目标跟随项目移植到自己的机器人小车上,并且成功了,最终小车可以跟着人移动,在这里分享一下心得。基于激光雷达的目标跟随,通过获取激光雷达的信息,跟随最近的物体。 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载目标跟随的源码 源码地址:https:

weixin_44574633的博客 4462

用Quartus II和LPM_ROM手把手复现西电计组课设:从微指令到五条指令的完整流程

本文详细介绍了使用Quartus II和LPM_ROM复现西电计组课设的完整流程,从微指令编写到五条指令的实现。通过环境搭建、LPM_ROM配置、微程序设计及调试技巧,帮助读者高效完成课程设计,避开常见问题。适合计组课程设计的学习者和实践者参考。

weixin_29288313的博客 456

python异常(概念、捕获、传递、抛出)

01. 异常的概念 程序在运行时,如果Python 解释器遇到到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常 程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出(raise)异常 程序开发时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事件做集中的处理,从而保证程序的稳定性和健壮性 02. 捕获异常 2.1 简单的捕获异常语法 在程序开发中,...

python学习者的博客 1万+

中科蓝讯蓝牙耳机SDK实战:从目录解析到消息处理框架

本文深入解析中科蓝讯蓝牙耳机SDK的目录结构与消息处理框架,提供从硬件驱动到蓝牙功能定制的实战指南。重点剖析SDK核心模块如消息队列机制、按键事件处理及电量报告优化,并分享二次开发中的调试技巧与避坑经验,助力开发者高效完成TWS耳机功能定制。

weixin_30335575的博客 388

Python基础之异常处理

发现有些东西长时间不用就要忘了,坚持每天复习总结一个`小知识点`吧~

车手只需要车和手,压力来自轮胎 8496

fins协议握手信号服务器响应,欧姆龙FinsTCP与FinsUDP协议解析 —— 利用Wireshark对报文逐字节进行解析详细解析附含报文模拟器等...

前言 – Fins欧姆龙这个协议网上极少有相关的模拟器、Tcp的这一块倒是有但是Udp的基本都是不可用1、 Fins协议结构也很简单 协议分为两种 一种tcp一种udp2、 Tcp比Udp的报文会多一层tcp的head头部3、 Udp回应报文在Wireshark中是解析不到(因为他按照UDP的格式去解那指定是解不到)好长时间没有更新过博客了、也比较懒= = 。一、Read(TCP)发包那么这个就很...

weixin_32491317的博客 4440

实战|mitmproxy+Playwright 拦截篡改Cloudflare验证流程,实现无感爬取(2026实测可用)

2026年对抗Cloudflare,别再死磕滑块、轨迹、算法。高伪装浏览器 + 中间层劫持篡改验证流程Playwright + mitmproxy = 无感过CF这篇是纯实战、无废话、可直接上线的方案。你只要把目标网站、cf_clearance填进去,就能跑通。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1284

Python常见异常类型有哪些?

如果这个异常对象没有进行处理和捕捉,程序就会用所谓的回溯(traceback,-种错误信息)终止执行,这些信息包括错误的名称(如NameError)、原因和错误发生的行号。SyntaxError异常是唯一不在运行时发生的异常, 它代表着Python代码中有一个不正确的结构,使得程序无法执行。上述信息表明,在Car的实例中定义了color属性,所以可以使用car.color的方式访问;当使用字典中不存在的键访问值时,会引发KeyError 异常。当使用序列中不存在的索引时,会引发IndexErr异常。

zy1992As的博客 1705

基于深度学习YOLOv11的布匹缺陷检测系统(Python+PySide6界面+训练代码)

YOLOv11模型训练:根据布匹缺陷数据集训练YOLOv11模型,以识别布匹中的各种缺陷,如裂纹、污渍、破损等。PySide6界面设计:设计一个图形用户界面,帮助用户上传布匹图像,并显示模型的检测结果。模型优化与精度提升:通过数据增强、超参数调优等手段提高模型的准确性。本文介绍了如何基于YOLOv11实现布匹缺陷检测系统,并通过PySide6构建了一个图形用户界面。该系统能够自动检测布匹中的各种缺陷,具有较高的效率和精度。

斌擎科技 529

python异常处理_编程须知:Python异常知多少以及如何处理?

本文主要是认识python的异常有哪些类型,以及如何进行python异常处理?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。如果有其它编程语言经验,如Java,可以理解的更深入些。我们知道,异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件),现代编程语言都有这种保证机制,以保证程序整体的运行稳健……废话少说,...

weixin_39729115的博客 141

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

assert python 中断_编程须知:Python异常知多少以及如何处理?

本文主要是认识python的异常有哪些类型,以及如何进行python异常处理?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。如果有其它编程语言经验,如Java,可以理解的更深入些。我们知道,异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件),现代编程语言都有这种保证机制,以保证程序整体的运行稳健……废话少说,...

weixin_28802499的博客 184

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python中如何处理异常?Python异常的处理

除了Python自带的异常外,开发者为了方便还可以自定义异常类。但是不论是以直接还是间接的方式,异常都应从 Exception 类派生。异常类可以被定义成能做其他类所能做的任何事,但通常应当保持简单,它往往只提供一些属性,允许相应的异常处理程序提取有关错误的信息。大多数异常命名都以 “Error” 结尾,类似标准异常的命名。许多标准模块都需要自定义异常,以报告由其定义的函数中出现的错误。自定义异常类testcatch。

知智 7440

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python:异常处理

Python:异常处理

m0_70882914的博客 3334

【Python异常处理】:如何处理异常报错?

一旦Python脚本发生异常,程序需捕获并处理异常。 异常处理使得程序能够在处理异常后继续正常执行,不至于崩溃或终止执行。当Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。.........

翼同学 1639

Python程序异常处理

异常就是程序运行时发生错误的信号,在程序由于某些原因出现错误的时候,若程序没有处理它,则会抛出异常,程序也的运行也会随之终止;1.程序终止,无法运行下去;2…如果程序是面向客户,那么会使客户的体验感很差,进而影响业务;当处理不确定因素时,比如有用户参与,有外界数据传入时,都容易出现异常;1.由于语法错误导致程序出现异常,这种错误,根本过不了Python解释器的语法检查,必须在程序执行前就改正;

Python编程学习的博客 6458

Python异常处理

1. try…except结构 异常处理结构中最常见也最基本的结构。其中try子句中的代码块包含可能出现的语句,而except子句用来不做相应的异常,except子句中的代码块用来处理异常。如果try中的代码块没有出现异常,则继续往下执行异常处理结构后面的代码;如果出现异常并且被except子句捕获,则执行except子句中的异常处理代码;如果出现异常单没有被except捕获,则继续往外层抛出;如...

weixin_43967584的博客 1万+

Python的错误和异常,异常的处理

该篇讲述如何正确理解和有效处理错误与异常

qq_52758588的博客 1772

python中处理异常的关键字_【python】异常处理

1. 抛出异常和自定义异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。1.1 raise 语句Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:1 # -- coding: utf-8 --2...

weixin_39891438的博客 2857

【Python异常处理】详解Python中的异常捕获和处理!

异常是一种在程序运行时发生的错误,导致程序无法按预期执行。Python 中的异常是一个类,继承自内置的类。: 语法错误TypeError: 类型不匹配ValueError: 值错误IndexError: 索引超出范围KeyError: 键不存在例如,访问不存在的列表索引会抛出IndexErrorPython 允许我们定义自己的异常类,从而更加精确地处理特定的错误场景。自定义异常类需要继承自内置的Exception类。在 Python 中,异常处理是编写健壮代码的核心。通过try-except。

萧鼎的博客 1791

python3 捕获异常和处理异常

异常 当执行程序的时候,遇到程序中有错误,程序就会停止运行并抛出一些错误信息,这就是异常 程序停止执行并提示错误信息这个动作,我们通常称之为’抛出异常’ 要想程序安稳的运行,可以多使用异常处理方法 #正常的代码如下: #下面的代码是将用户输入的数字转换成整型,这个是正确而且可以运行的 def ii(): aa = int(input('请输入一个整数:')) print(aa) ...

YeLang 4200

Python 异常处理:Python 异常处理

finally 是与 try 和 except 一起使用的关键字,当我们有一段代码要运行时,无论 try 是否引发异常。(自定义异常是程序员在某些特定场景或条件下需要中断代码流时可能引发的异常)还可以向这些自定义异常提供支持引发异常原因的字符串消息。上面的示例非常适合 try、 except 或 else 和 finally 块的应用,因为每个块所发挥的作用如果我们不使用这些块可能很难实现。在上面的示例中,我们捕获了 try 块中引发的异常,但 except 块将捕获 try 可能引发的所有异常。

新华编程特战队 1206

python 异常处理

一)捕获异常格式一:try:    except :    except :    else:           如果没有异常,则执行else块中的语句    格式二:try:    finally:    不管try语句块中是否发生异常,都将执行finally语句块。>>> l = [1,2,3]>>> l[5]Trace

张国鹏的专栏 4093
上一篇: 是时候让大家看看你用django写出来的博客了!
下一篇: Python 开发植物大战僵尸游戏!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值