异常对象 | Python从入门到精通:高阶篇之四十二

简介: 本节主要是介绍如何捕获异常对象,except直接捕获所有的异常,或者是except 异常类型 as 异常名,捕获具体的异常类型。

异常传播 | Python从入门到精通:高阶篇之四十一

异常对象

我们如何去捕获到异常呢?
我们来通过代码分析一下:

print('异常出现前')

print(10/0)

print('异常出现后')

执行结果:

image.png

我们之前是如何处理这些异常的呢?

print('异常出现前')

try:
    print(10/0)
except:
    print('处理异常的代码~~~')

print('异常出现后')

执行结果:

image.png

在捕获异常对象之前,我们还需要知道一点。
如果except后不跟任何的内容,则此时它会捕获到所有的异常。
如果在except后跟着一个异常的类型,那么此时它只会捕获该类型的异常。

print('异常出现前')

try:
    # print(c)
    print(10/0)
except NameError:
    print(''出现 NameError 异常'')

print('异常出现后')

执行结果:

image.png
image.png

此时可以发现,注释掉print(c)之后,程序会出错,只能解决NameError的异常。如果要想解决print(10/0)的异常,可以再添加一个ZeroDivisionError的异常:

except ZeroDivisionError:
    print('出现 ZeroDivisionError 异常')

执行结果:

image.png

此时发现两个异常都解决了,但是如果现在添加了一个l = []

l = []

try:
    l[10]

执行结果:

image.png

此时没有捕获异常,我们来添加一下:

except IndexError:
    print('出现 IndexError 异常')

except:
    print('未知异常')

执行结果:

image.png

我们再添加一个异常代码:

1 + 'hello'

执行结果:

image.png

except:except Exception:效果一样,所以可以省略不写。
Exception 是所有异常类的父类,所以如果except后跟的是Exception,他也会捕获到所有的异常,可以在异常类后边跟着一个 as xx 此时xx就是异常对象。

except Exception as e :
    print('未知异常',e)

执行结果:

image.png

我们来看一下e的类型:

    print('未知异常',e,type(e))

执行结果:

image.png

在异常处理过程中,除了以上的语句之外,还可以添加finally。我们在后面添加finally语句。

print('异常出现前')
l = []
try:
    print(10/2)
except NameError:
    print('出现 NameError 异常')
except ZeroDivisionError:
    print('出现 ZeroDivisionError 异常')
except IndexError:
    print('出现 IndexError 异常')
except Exception as e :
    print('未知异常',e,type(e))
finally :
    print('无论是否出现异常,该子句都会执行')

print('异常出现后')

执行结果:

image.png

修改:

    print(10/0)

执行结果:

image.png

此时处理异常的语句可改为:

 try语句
        try:
            代码块(可能出现错误的语句)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        else:
            代码块(没出错时要执行的语句) 
         finally:
            代码块(该代码块总会执行)  
 
         try是必须的 else语句有没有都行
        except和finally至少有一个    

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
1天前
|
数据采集 前端开发 JavaScript
Python爬虫入门
网络爬虫是自动抓取网页数据的程序,通过URL获取网页源代码并用正则表达式提取所需信息。反爬机制是网站为防止爬取数据设置的障碍,而反反爬是对这些机制的对策。`robots.txt`文件规定了网站可爬取的数据。基础爬虫示例使用Python的`urllib.request`模块。HTTP协议涉及请求和响应,包括状态码、头部和主体。`Requests`模块是Python中常用的HTTP库,能方便地进行GET和POST请求。POST请求常用于隐式提交表单数据,适用于需要发送复杂数据的情况。
8 1
|
4天前
|
机器学习/深度学习 人工智能 数据可视化
Python编程入门:从零开始探索编程的奇妙世界
这篇教程引导初学者入门Python编程,从安装Python开始,逐步讲解基本语法,如`print()`、变量、条件判断、循环以及自定义函数。文章强调了Python在数据处理、数据分析、人工智能和机器学习等领域的重要性,并鼓励学习者探索Python的广泛应用,开启编程之旅。
|
5天前
|
数据可视化 API Python
Python零基础“圣经”!300W小白从入门到精通首选!
今天分享的这本书在让你尽快学会 Python基础知识的同时,能够编写并正确的运行程序(游戏、数据可视化、Web应用程序) 最大的特色在于,在为初学者构建完整的 Python 语言知识体系的同时,面向实际应用情境编写代码样例,而且许多样例还是 后续实践项目部分的伏笔。实践项目部分的选题经过精心设计,生动详尽 又面面俱到。相信这本书能够得到更多 Python 初学者的喜爱。
小白入门必备!计算机科学教程的Python精要参考PDF开放下载!
随着互联网产业的高速发展,在网络上早已积累了极其丰富的Python学习资料,任何人都可以基于这些资源,自学掌握 Python。 但实际上,网络上充斥的资源太多、太杂且不成体系,在没有足够的编程/工程经验之前,仅靠“看”线上资源自学,的确是一件非常困难的事。
|
7天前
|
存储 JSON JavaScript
Python文件和异常(二)
Python文件和异常(二)
18 0
|
7天前
|
存储 文件存储 Python
Python文件和异常(一)
Python文件和异常(一)
15 0
|
7天前
|
Python
Python基础 笔记(十) 文件操作、异常、模块
Python基础 笔记(十) 文件操作、异常、模块
22 3
|
8天前
|
Linux 开发工具 Python
初学者从无到有的Python语言如何入门,这份Python学习路线赶紧带走_python 从无到(1)
初学者从无到有的Python语言如何入门,这份Python学习路线赶紧带走_python 从无到(1)
初学者从无到有的Python语言如何入门,这份Python学习路线赶紧带走_python 从无到(1)
|
8天前
|
Java 程序员 C语言
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
2024年Python最新【Python学习教程】Python类和对象_python中类和对象的讲解,Python最新面试题
|
8天前
|
搜索推荐 开发工具 Python
2024年最新【Python 基础教程】对时间日期对象的侃侃而谈,面试必考题
2024年最新【Python 基础教程】对时间日期对象的侃侃而谈,面试必考题
2024年最新【Python 基础教程】对时间日期对象的侃侃而谈,面试必考题