Python知识点精汇:异常信息及如何捕获
简单来说,程序在运行时,如果遇到错误,会停止程序的执行,并提示一些错 误信息, 这就是异常。比如下面:代码出现错误后,下面输出框中弹出的红色字体,就是异常。那么,异常是干什么的呢?告诉你程序有错。告诉你程序哪里有错。
目录
查找异常信息,直接翻看(2)异常信息有哪些
一、什么是异常
简单来说,程序在运行时,如果遇到错误,会停止程序的执行,并提示一些错 误信息, 这就是异常。比如下面:
代码出现错误后,下面输出框中弹出的红色字体,就是异常。
那么,异常是干什么的呢?
- 告诉你程序有错。
- 告诉你程序哪里有错。
二、异常信息
所以,每当我们的代码出现错误时,我们不应该返回去代码中找哪错了,而应该在输出的异常信息里找哪错了。
那么,如何找,以及异常信息都有哪些?
(1)如何去找
首先要读那些红色的字,比如下面图中:
- Traceback (most recent call last)中Traceback是追踪,most recent call last及时看不懂也知道是最近的意思吧,所以它就是告诉你这个错误具体在哪的。
接着看,
- file什么什么这是你当前的python文件,然后line1,然后a+b,a的下面还有个标记。这就是告诉你在这个python文件中的第一行代码的a+b中的a开始出现错误了。
所以我们知道,错误是从a开始的,我们就可以返回代码里找到它,看看具体是啥错误了。
- 那么具体是什么错误?我们就要知道下面的NameError: name 'a' is not defined什么意思了,当然这里我们可以看到它的意思是a不可被识别
但是,有时候它会抛出关键词,我们看不懂的,所以就用到了下面的知识:
(2)异常信息有哪些
常见的异常信息包括:
异常类型 | 说明 |
AttributeError | 属性错误,特性引用和赋值失败时会引发属性错误 |
SyntaxError | 语法错误,代码形式错误 |
lOError | 输入输出错误,一般常见于打开 不存在的 文件时引发 IOError 错误 |
KeyError | 使用了映射中不存在的关键字(键) 时引发的关键 字错误 |
IndexError | 索引错误,使用的索引不存在,或索引超出序列 范围 |
TypeError | 类型错误,某些函数或者方法只适用于特定数据 类型,若数 据类型操作不当会抛出此错误 |
ZeroDivisionEror | 除数为 0 时抛出此异常 |
ValueError | 值错误,传给对象的参数类型不正确,例 如,int()函数中传 入了非数字的字符串类型 |
NameError | 试图访问的变量名不存在 |
在(1)中就是nameerror,而在其他地方则需要我们根据提示去辨别了。
三、捕获异常
如果我想知道我们的代码中是否存在某种错误,我们可以采用捕获,来抓住它。
(1)捕获所有异常
格式:
try: 可能出现错误的代码块 except: 如果出现错误,那么就怎样怎样
示例:
这里错误很多,除数为0、文件找不到等等,出现错误时,会输出1.
(2)捕获特定异常
格式:
try: 可能出现错误的代码块 except 异常关键词: 如果出现错误,那么就怎样怎样
示例:
此为捕获:
ZeroDivisionEror | 除数为 0 时抛出此异常 |
的异常
(3)捕获多个异常
格式:
同(2),然后给加上关键词加上()即可
示例:
(4)捕获特定异常后改为别名
格式同(2),然后后面加 as 你要改的名
示例:
这里将该错误更名为e,所以输出e的话,会直接输出该错误。
(5)对多个异常作出多个处理
可以多用几个expect,如:
try: 有错误的代码 except 关键词1 as e: #可以删除 as e 的哦 怎样怎样 except 关键词2 as e: 怎样怎样
(6)其他
先来看一段代码:
try:
a = int(input("请输入 a 的值:"))
print(20/a)
except:
print("发生异常!")
else:
print("执行 else 块中的代码")
finally :
print("执行 finally 块中的代码")
解释:
- 当 try 块中没有发生异常时,会执行 else 块中的代码
- 无论 try 块是否 发生异常,最终都 要进入 ffnally 语句,并执行其中的代码块
比如当我们输入a的值为0时,输出:
当我们输入a的值为1时,输出:

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)