2019/11/28 02-异常概念、产生和捕获

在这里插入图片描述
错误是error
逻辑错误:算法写错了,加法写成了减法,
笔误:变量名写错了,语法错误
函数或类使用错误,其实这也属于逻辑错误
总之,错误是可以尽可能的避免的
异常是exception
没有做错事情,出现意外,导致计划泡汤,意外往往无法避免,由你不可掌控的原因控制的,有些系统太过复杂是无法预测的,异常是无法感知的,所以是无法直接去避免的,但是错误是可以避免的
在这里插入图片描述
在高级语言中,一般都有异常和错误两个概念,异常是可以捕获的,并被处理的,但是错误是不能够被捕获的

有些错误是可以引发异常,可以捕获异常,但是是由错误引起的,错误本身是不可捕获的

文件不存在会抛出异常,这种异常是可以被捕获的
在这里插入图片描述
现在抛出的异常是文件不存在异常
在这里插入图片描述
如果发生错误,语法错误,也是Error结尾的
在这里插入图片描述
python比较奇怪,把语法错误放到异常类的体系里面在这里插入图片描述在这里插入图片描述
一种是代码因为某些原因发生异常,还有一种是通过raise方法,手动抛出一个,这样就可以手动产生一个异常出去在这里插入图片描述
在这里插入图片描述
如果不对产生的异常做处理,就会影响现在的程序执行

在这里插入图片描述
不出现错误捕捉和处理的话,就影响程序的执行,从出现异常向后的代码,不做捕获处理就没法执行,直接中断当前函数执行,中断当前线程执行
在这里插入图片描述
异常是在运行中确实达到某种条件,这个条件就产生异常,会提前结束线程的执行
在这里插入图片描述
raise语句可以什么都不写
raise后面写类名,就是调用这个类的无参构造
在这里插入图片描述
提示应该有最近一次被激活的异常,这里没有就直接报错在这里插入图片描述
可以直接在后面放类,放类,就会调用这个类的无参构造
在这里插入图片描述
无参构造,其实里面有默认值
在这里插入图片描述
这个是传了参来构造
在这里插入图片描述
这两条是相等的,上面写成这样就会调用下面的无参构造
在这里插入图片描述在这里插入图片描述
没有这个文件就直接报错在这里插入图片描述
出现错误就终止语句完成,在try里才会尝试去捕捉异常,当前产生异常的地方,就不再往下执行,except来处理这个异常怎么做在这里插入图片描述
只要有地方把异常处理完后,就可以继续向下执行,try里面出现的异常,after就不执行了在这里插入图片描述在这里插入图片描述
try里面先执行在这里插入图片描述
如果没有捕获,就只能打印个before,没有替你捕获在这里插入图片描述
函数内部的异常如果没有补货,就会继续向外抛出,这样打印的效果是跟刚才一样的,这就是从函数内部传送到函数外部在这里插入图片描述在这里插入图片描述
except是在处理异常,处理过了,就继续向下执行
在这里插入图片描述
还可以捕获特定的异常,不但没打印,而且直接报错,捕获是否是Indexerror这种错误的异常,这里就相当于file not find 异常捕获了但是没人处理,没人管就抛出去了
在这里插入图片描述在这里插入图片描述在这里插入图片描述
这回就抛出异常在这里插入图片描述
except后面什么都没写,就是什么异常都捕获在这里插入图片描述
这是捕获特定异常,算术异常在这里插入图片描述
code1,红色代表是标准输出在这里插入图片描述在这里插入图片描述
raise看起来像是什么异常都能抛出,但是肯定不是这么玩的在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值