首页 > 编程语言 >python中五种异常机制的简介

python中五种异常机制的简介

时间:2022-12-06 11:33:13浏览次数:48  
标签:语句 python 简介 except try 五种 print 执行 异常


默认的异常处理器

 

代码如下:


s = 'Hello girl!'
print s[100]
print 'continue'

 

如果我们没有对异常进行任何预防,那么在程序执行的过程中发生异常,就会中断程序,调用python默认的异常处理器,并在终端输出异常信息。这种情况下,第3行代码不会执行。

try…except

 

代码如下:


s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

 

程序执行到第2句时发现try语句,进入try语句块执行,发生异常,回到try语句层,寻找后面是否有except语句。找到except语句后,会调用这个自定义的异常处理器。except将异常处理完毕后,程序继续往下执行。这种情况下,最后两个print语句都会执行。

except后面也可以为空,表示捕获任何类型的异常。

try…finally

 

代码如下:


s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

 

finally语句表示,无论异常发生与否,finally中的语句都要执行。但是,由于没有except处理器,finally执行完毕后程序便中断。这种情况下,倒第2个print会执行,到第1个不会执行。如果try语句中没有异常,三个print都会执行。

assert

 

代码如下:


assert False,'error...'
print 'continue'

 

这个语句,先判断assert后面紧跟的语句是True还是False,如果是True则继续执行print,如果是False则中断程序,调用默认的异常处理器,同时输出assert语句逗号后面的提示信息。本例情况下,程序中断,提示error,后面的print不执行。

with…as

 

代码如下:


with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

 

我们平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭,很麻烦。这里with…as语句提供了一个非常方便的替代方法:open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用。with语句块完毕之后,会隐藏地自动关闭文件。

如果with语句或语句块中发生异常,会调用默认的异常处理器处理,但文件还是会正常关闭。

这种情况下,会抛出异常,最后的print不执行

标签:语句,python,简介,except,try,五种,print,执行,异常
From: https://blog.51cto.com/u_15903730/5915589

相关文章

  • python之 json文件转xlsx文件
    直接上干货JSON数据转化后的xlsx文件代码解析(可直接食用)"""@File:json_to_xlsx.py@Author:Logan@Date:2022/12/6@Desc:json数据保存未xlsx文件"""......
  • 【Python小随笔】将str类型的list列表,转换成List类型
    str_list="['001678,英大国企改革主题股票,YDGQGGZTGP,2022-12-05,1.6577,2.3077,1.15,4.62,3.72,1.57,15.88,34.04,46.95,115.66,33.43,152.94,2018-11-22,1,34.61......
  • 数据分析工具 Excel、PowerBI、Python、SQL、JVS哪一个更好用?
    先上对比分析产品对比使用低门槛实施效率功能覆盖度上线周期低使用成本企业分析场景Excel★★★★★★★★★★★☆☆☆☆★★★★★★★★★★★★☆☆☆PowerBI★★★☆☆......
  • python之xlsx合并单元格
    需求背景:工作中将数据保存xlsx文件之后,里面每一列中有很多重复的看着很不美观,需要将每一列中的相同值合并起来,是表格看起来美观简洁处理前处理后直接上代码(内涵注释......
  • 【深入理解java虚拟机】 - JVM运行时数据区各部分简介
    文章目录​​运行时数据区​​​​运行时数据区结构图​​​​程序计数器​​​​JVM栈​​​​局部变量表​​​​本地方法栈​​​​堆​​​​方法区​​​​运行时常量......
  • Android(Lollipop/5.0) Material Design(一) 简介
    官网地址:https://developer.android.com/intl/zh-tw/design/material/index.html使用MaterialDesign需要api21,即Lollipop/5.0以上MaterialDesign为应用提供了:一个新的主......
  • 【python】求最大公约数、最小公倍数、回文数、素数
    1.最大公约数最大公因子,指两个或多个整数共有约数中最大的一个。如(12,16)的公约数有1,2,4,最大的为4。defgcd(x,y):(x,y)=(y,x)ifx>yelse(x,y)fo......
  • Python数据分析入门--Pandas库学习
    Pandas库学习相较于numpy库关注数据结构的表达,pandas库更关注数据的应用表达1.Pandas库的Series类型1.1Series类型的组成Series类型由一组数据及与之相关的数据索引......
  • Python工具箱 — 创建工具箱
    如果是Python新手,使用ArcPy自定义脚本通过向导创建脚本工具箱非常简单。但它在数据类型、许可检查和管理维护等方面存在弊端,因此,从ArcGIS10.1起,对于经验比较丰富的用户......
  • python爬虫爬取网易云音乐(超详细教程,附源码)
    一、前言先说结论,目前无法下载无损音乐,也无法下载vip音乐。此代码模拟web网页js加密的过程,向api接口发送参数并获取数据,仅供参考学习,如果需要下载网易云音乐,不如直接在......