目录

一、什么是异常

二、异常信息

(1)如何去找

(2)异常信息有哪些

三、捕获异常

(1)捕获所有异常

(2)捕获特定异常

(3)捕获多个异常

(4)捕获特定异常后改为别名

(5)对多个异常作出多个处理

(6)其他


查找异常信息,直接翻看(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时,输出:

Logo

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

更多推荐