Python之第十二章 异常处理

目录

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('您的密码不足六位')
        pass
    print(password)
​
​
input_password()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White乄joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值