python中自定义异常和assert,else,finally



class MyException(Exception):                       # 自定义异常类,继承自Exception
    pass


# raise MyException("这是用户定义的异常")           # 触发自定义异常
try:                                               # 捕捉异常
    raise MyException("这是用户定义的异常")         # "这是用户定义的异常"是个message
except MyException as e:                            # e就是MyExcetion的一个对象
    print(e)


# assert断言的使用

assert(1 == 1)                                     # 这样不会报错
assert(1 == 0)                                     # 报错AssertionError


def demo(x, y):
    return x + y


print(demo(1, 2))                                   # 3
assert(demo(1, 2) == 3)                             # 不会报错
assert(demo(1, 2) == 4)                             # 报错AssertionError


# try...except...else...语句的使用和finally

"""
try:
    执行代码
except:
    如果有异常发生,执行此处的代码
else:
    如果没有异常发生,执行此处代码
finally:                                          (有的代码需要这个关键字)
    不管有没有异常都会执行此处代码
    
"""


def my_interaction():
    raise MyException('这是用户定义的异常2')


try:
    my_interaction()
except MyException as error:
    print(error)                                # 这是用户定义的异常2
else:
    print('Executing the else clause')          # 因为异常发生,所以这句话不会执行


try:
    my_interaction()
except MyException as error:
    print(error)                                # 这是用户定义的异常2
else:                                           # 如果异常发生,会打印error,而else语句不会执行
    try:
        with open('file.log') as file:
            read_data = file.read()
    except FileNotFoundError as fnf_error:
        print(fnf_error)
finally:                                        # 不管异常是否发生,都会执行
    print('清理工作')                           # 清理工作


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

瑟寒凌风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值