15 python的异常

1. 异常的介绍

  • 程序在运行过程中可能会出现一些错误。比如: 使用了不存在的索引,两个不同类型的数据相加…这些错误我们称之为异常。异常以后的代码都不会执行,异常之前的代码照常执行
print('hello')
print(10 / 0)
print('python')

输出:
hello
Traceback (most recent call last):
  File "C:/Users/bin/Desktop/logic教育课件资料/20200513-第十六讲-异常&文件/课堂源码/异常简介.py", line 16, in <module>
    print(10 / 0)
ZeroDivisionError: division by zero
  • 处理异常 程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理
使用try语法,使程序不因一些小错误或不确定语句而导致无法运行

try:
    代码块 (可能出现错误的语句)
except.....
else:
    代码块 (没有出错要执行的语句)

2. 异常的传播

  • 当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会在进行传播。如果函数中没有对异常进行处理,则异常会继续向函数调用传播。如果函数调用处处理了异常,则不再传播异常,如果没有处理则继续向调用处传播。直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并显示异常信息。
  • 当程序运行过程中出现异常以后,所有异常信息会保存到一个异常对象中(ZeroDivisionError,NameError…就是异常对象,更多的异常对象可到官网查看文档https://docs.python.org/3/library/exceptions.html)。而异常传播时,实际上就是异常对象抛给了调用处

3.异常对象

try语句
    try:
        代码块(可能出现错误的语句)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    except 异常类型 as 异常名:
        代码块(出现错误以后的处理方式)
    ....
    else:
        代码块(没出错时要执行的语句)
        
    finally:
        代码块(是否出错该代码块都会执行)
     try是必须的 else有没有都可以
     exceptfinally至少有一个

注:

  • except后不跟任何内容,则能捕获所有类型的异常。若跟了异常类型,则只能捕获该类型的异常
  • Exception是所有异常的父类,所以如果except后跟Exception 它会捕获到所有的异常
try:
    print(10/0)
eccept Exception as e:
	print('出现异常了',e,type(e))

输出:
出现异常了 division by zero <class 'ZeroDivisionError'>
e代表了异常的原因,type(e)表示出了异常的类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值