python-异常模块

本文介绍了Python中的异常处理机制,包括异常捕获、异常类型捕获、try-except-else、try-finally、主动触发异常以及断言。通过实例展示了如何在程序中优雅地处理错误,以及如何自定义异常类。同时,还提供了练习题帮助读者巩固理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、异常

1.异常捕获

当Python无法正常处理程序时就会发生一个异常,会影响程序的正常执行。
异常也是Python对象,表示一个错误
当Python脚本有发生异常的可能时,就需要捕获异常,避免程序终止执行。

try:
    正常程序执行此块代码
except:
    抛出错误执行此代码块

2.异常类型捕获

但是仅仅使用以上异常捕获,虽然不会报错终止程序。但是无法记录下具体异常种类。如需记录下具体异常种类,则需要捕获该具体异常。

try:
    pass
except 当前异常对象 as e:  # e = 当前异常对象 
    print(e)  

栗子:

while True:
    try:
        shu = int(input('请输入转换金额:'))
        break
    except ValueError as e:
        print('输入格式不正确,请重新输入。', e)
    except Exception as e:
        print('出现未知错误')

注意:使用Exception可以捕获所有异常类型
细分方法一般用于载入日志

3.try-except-else

• 如果抛出异常执行except内部代码
• 如果程序正常执行else内部代

try:
    shu = int(input('请输入转换金额:'))
except ValueError as e:
    print('输入格式不正确,请重新输入。', e)
except Exception as e:
    print('出现未知错误')
else:
    print('程序正常时所执行的代码')

4.try-finally

不管程序有无发生异常,都将执行finally内部代码。
最后执行,一般用于最后关闭文件操作

5.主动触发异常

在实际开发中,在程序不满足某条件时,通常会主动抛出异常。
raise Exception()

练习
判断煎饼熟了没,当烹饪时间小于5时,则主动触发没熟异常;否则熟了。

def test(level):
    if level<5:
        raise Exception("没熟没熟")
try:
    test(5)               
except Exception as e:
    print(e)             
else:
    print("熟了 请吃")    

自定义异常
当需要自定义满足一些规则时,就可以自定义异常。
自定义异常通过创建一个新的异常类,自定义名字与内容,并且需要继承Exception类实现。
练习
自定义OldAmyError异常类

class OldAmyError(Exception):
    def __init__(self,msg):
        self.message = msg
    def __str__(self):
        return self.message
e = OldAmyError("我错了")
    print(e)
try:
    raise OldAmyError("我错了")    
except OldAmyError as e:
    print(e)

6.断言

assert断言用于判断一个表达式,当表达式条件为False时触发断言异常AssertionError。
若不满足断言条件则使程序报错

assert 断言

注意,断言用于强制用户服从,可捕获,但是一般不捕获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值