DAY9错误与异常处理1

概述

有时候代码写错了,执行程序的时候,执行到错误代码的时候,程序直接终止报错,这是因为python检测到一个错误时,解释器就无法执行了,出现了错误的提示,这就是异常。

示例
在这里插入图片描述
语法格式

try:
       可能出现错误的代码块
except:
        出错之后执行的代码块
else: 
         没有出错的代码块
finally:
         不管有没有出错都执行的代码块

try……except语句

将可能出错的代码放到try里面,except可以指定类型捕获异常。except里面的代码是捕获到异常时执行,将错误捕获,这样程序就不会因为一段代码包异常而导致整个程序崩溃。

示例
捕获ZeroDivisionError异常
在这里插入图片描述
实操
在正常执行的时候,如果第一句出错那么整个程序都不会再执行下去,会直接在错误的地方停止报错
在这里插入图片描述
在这里插入图片描述
这样出现错误就停止使得检错工作异常麻烦,所以我们可以使用try……except函数,这样也会报错,但会继续运行下面的语句
在这里插入图片描述
在这里插入图片描述
但下面这种错误会直接跳出来,为什么呢?
在这里插入图片描述
在这里插入图片描述
这是因为我们在except之后指定了是NameError 类型,但这个错误是IndexError类型的,所以并没有捕获到。

错误类型是可以写很多个多次叠加的
在这里插入图片描述
在这里插入图片描述
小结

except在捕获错误异常的时候,只要根据具体的错误类型来捕获的。
用一个块,可以捕获多个不同类型的异常。

python中内置的错误类型
在这里插入图片描述
有没有一种方法可以捕获所有异常呢?(因为可能存在不知道是什么异常的情况)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不需要在每个可能出错的地方去捕获,只要在合适的层次去捕获错误就可以了,这样的话,就大大减少了我们写try……except的麻烦
在这里插入图片描述
在这里插入图片描述
如果不使用try……except函数呢?
在这里插入图片描述
在这里插入图片描述
这种报错会显示函数的运行逻辑。

异常的抛出机制

如果在运行时发生异常,解释器会查找相应的异常捕获类型;如果在当前函数里面没有找到的话,它会将异常传递给上层的调用函数,看能否处理;如果在最外层没有找到的话,解释器就会退出,程序就会down掉

try-except-else函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但如果try里面语句正确运行
在这里插入图片描述
则else里面的语句就会运行
在这里插入图片描述
try-except-finally函数
在这里插入图片描述
在这里插入图片描述
当try模块没有错误时
在这里插入图片描述
finally里面的代码块仍然正常运行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值