Python之第十二章 异常处理
admin
2024-02-07 14:21:28
0

目录

Python之第十二章 异常处理

1.异常的概述

1.异常:

2.异常演示

3.异常出现的原因

4.异常分类

5.异常信息

6.常见异常

2.捕获异常

1.格式

2.执行方式

3.例

4.捕获指定的异常

3.异常捕获的else语句

1.作用

2.格式

3.例

4.异常的捕获finally语句

1.定义:

2.格式

3.例

5.自定义异常

1.作用

2.格式:raise 异常对象

3.例 :密码长度不足的自定义异常


Python之第十二章 异常处理

1.异常的概述

1.异常:

        程序运行时检测出的错误,解释器无法继续执行,继而出现程序中断,这些错误统称为异常

2.异常演示

print(10/0)
​
结果:
ZeroDivisionError: division by zero
f = open('python.txt', 'r')
content = f.readline()
print()
​
结果:
FileNotFoundError: [Errno 2] No such file or directory: 'python.txt' # 差找不到文件错误

3.异常出现的原因

        错误发生,原有的程序无法继续执行,对于用户来说,不能因该问题就终止程序执行,所以要给出异常处理的机制,让设计者知道为什么出现错误,应该怎么处理

4.异常分类

        显示异常 --- 明确语法错误,有提示

        隐式异常 --- 不容易发现,一般与操作有关

5.异常信息

        异常的追踪信息 --- 异常出现在哪一行

        异常的类型 --- 内置在Python中,根据异常类型给出提示

        异常内容 --- 异常的简单解释

6.常见异常

异常名称描述
NameError变量没有声明
IndexError索引超出序列范围
IndentationError缩进错误
ValueError传入的值有误
KeyError请求的字典关键字不存在
IoError输入输出错误
ImportError模块加载错误
AttibuteError访问位置的对象属性
TypeError类型不匹配错误
MemoryError内存不足
ZeroDivisionError除数为0

2.捕获异常

1.格式

try:可能发生的错误代码
except异常出现后的执行代码

        可能发生的错误代码 --- 一般为正常的程序段

        异常出现后的执行代码 --- 可以写固定的提示信息

2.执行方式

        当try语句块的代码出现错误,就会执行except后的代码块,若没有出现错误则except之后的代码不会执行

3.例

try:f = open('python.txt', 'r')content = f.readline()print()
except:f = open('python.txt', 'r')f.write('发生异常,则执行except后的代码')
f.close()

4.捕获指定的异常

        原因 --- 有针对性的捕获异常,并执行相应代码

        格式

try:可能遇到的异常代码
except(需要捕获异常的名称 [as 新名称]):异常出现后的执行代码

        需要捕获异常的名称 [as 新名称] --- 表示指明需要捕获的异常名,由于名称太长可以利用as命名一个别名,可以省略

3.异常捕获的else语句

1.作用

        else语句表示如果没有异常则需要执行的代码

2.格式

try:可能遇到的异常代码
except:异常出现后的执行代码
else:没有发现异常时执行的语句

3.例

try:f = open(1)
except:f = open(e)
else:print('呵呵,没有异常,没问题')

4.异常的捕获finally语句

1.定义:

        finally语句表示无论是否有异常都要执行的语句,如:关闭文件、关闭数据库

2.格式

try:可能遇到的异常代码
except:异常出现后的执行代码
else:没有发现异常时执行的语句
finally:必须执行的代码块

3.例

try:f = open('python.txt', 't')
except:f = open('python.txt', 'w')
else:print('真棒,无异常')
finally:print('关闭文件')f.close()

5.自定义异常

1.作用

        若果某个函数或方法可能出现异常,但又不愿在当前去处理,则可以使用raise语句来处理

2.格式:raise 异常对象

3.例 :密码长度不足的自定义异常

def input_password():password = input('请输入密码,不少于6位:')if len(password) < 6:# 抛出异常raise Exception('您的密码不足六位')passprint(password)
​
​
input_password()

相关内容

热门资讯

消息称百度旗下昆仑芯瞄准500... 6 月 29 日消息,据《The Information》昨日援引知情人士消息,百度旗下 AI 芯片...
打造夏日消费新场景 第35届北... 北京商报讯(记者 翟枫瑞)6月29日消息,第35届北京国际燕京啤酒文化节新闻发布会在京举行。本届啤酒...
社保基金持仓数据出炉,一季度增... 最近各大上市公司一季度财报都公开了,咱们国家社保基金的持仓数据也全部曝光。目前社保拿着比亚迪价值44...
36氪首发 | 海思、中兴团队... 作者 | 乔钰杰 编辑 | 袁斯来 硬氪获悉,广州宸思通讯科技有限公司(以下简称“宸思科技”)近日完...
两天蒸发47亿市值!一纸税务通... 一纸税务通知书,能让一家百亿龙头两天蒸发47亿市值。 6月22日,北大荒(600598.SH)公告称...
SK海力士将投资1100万亿韩... SK集团会长崔泰源6月29日在韩国“三大重大计划”发布会上宣布,公司将投资1100万亿韩元扩大半导体...
两只A股,终止上市! 两家A股公司,即将摘牌。 6月29日,退市沪科(600608.SH)公告称,上海证券交易所将在202...
原创 M... 一家成立近十年的自动驾驶公司,在IPO时吸引了14家基石投资者认购近一半的发行股份,其中不乏奔驰、比...
基金忠言|国寿安保滤镜碎,三年... 图片来源:视觉中国 蓝鲸新闻6月29日讯(记者 祁和忠)保险系基金公司国寿安保总经理换人了。 6月2...
三星电机计划加码玻璃基板!相关... 6月29日,玻璃基板概念股午后有所回升, 华工科技(000988.SZ)逼近涨停, 彩虹股份(600...
拉萨海关持续壮大外贸经营主体 ...   新华网拉萨6月28日电(记者蒋梦辰)近日,记者从拉萨海关获悉,今年前5个月,西藏有进出口实绩的外...
机构:二季报临近,医药生物板块... 6月29日,华源证券发布了一篇医药生物行业的研究报告,报告指出,业绩期临近,产业链景气度有望再次迎来...
每日收评科创50放量涨超4.5... 财联社6月29日讯,三大指数全线收红,创业板指探底回升,科创50指数大涨4.61%。沪深两市成交额3...
6月多地土拍结构性升温:深圳单... 进入2026年6月,不少城市核心区地块集中诞生高溢价宗地,热度突出的城市包含深圳、杭州、长沙。 其中...
业绩炸裂!盛达资源半年预盈3.... 6月29日,贵金属矿山龙头盛达资源(000603.SZ)发布 2026 年半年度业绩预告,上半年业绩...
A股午后拉升三大股指收涨:半导... A股三大股指6月29日开盘涨跌互现。早盘沪强深弱,创指一度跌超2%。半导体午后拉升,带动两市上涨,沪...
原创 空... 前言 大家好,我是老金。 这几天,两幅极度割裂的画面放在一起,把我看笑了。 一边是在持续的热浪下,欧...
澳大利亚审慎监管局拟放宽银行风... 澳大利亚审慎监管局(APRA)6月29日就修改 银行信用风险资本设定公开征求意见,旨在加大信贷投放以...
全民炒股,急踩刹车!韩国股市突... 屈红燕/证券时报网 全民狂欢、交易高度拥挤、杠杆资金猛增、新入市投资者表现激进、大型IPO吸金等现象...