异常

异常:异常就是程序运行时发生错误的信号。

在程序出现错误的时候,会产生一个异常,如果程序没有处理它,则会抛出该异常,并且程序的运行也会随之终止。

 

当异常发生时:解释器会提示异常,并且终止程序继续运行。

 

异常的种类:python中不同的异常可以用不同的去标识。

 

常用异常种类:

 

 

如何排查错误:查看追踪信息定位到错误发生的位置:

1.如果你的代码没有调用任何内置模块或方法,那错误发生的位置一定是在最后一行。

如果调用了其他模块的方法:1.系统内置的模块,一定是自己在调用时出了错误。

2别人写的模块是有可能出错的,所以你可以按照追踪信息查看。

绝招:如果有很多追踪信息,找最后一行你自己写代码的位置。

 

异常的三大组成部分:追踪信息、异常的类型、异常的值。

 

异常一旦发生就会导致程序终止,这对于用户而言,体验极差,所以我们需要一种机制能够防止因异常而终止。

 

异常可以由发生的时间不同,分为两类:

  1. 语法检测异常(语法错误和缩进错误  解释器在执行代码前会先检测语法、检测通过才会开始执行,如果这个阶段发生异常 代码一行都不会执行)
  2. 运行时异常(必然已经通过语法检测 在解析执行期间发生的异常,执行到异常位置抛出 异常,后面的代码不在执行。)

 

重点:异常处理

(仅在错误发生条件是不可预知的条件下才能使用)

1.语法:

try

代码块

 raise 异常类名(‘字符串’)   )   主动抛出异常,并打印字符串内容(无 论有没有异常,执行到这一句,都会主动抛出异常)

 

except 异常类型:     (如果存在异常,没有捕获到异常,

  即捕捉异常的类型不准确,程序还是会直接报错)

异常捕获后执行的代码块          如果没有捕获到异常,不执行

 

  1. 多分支except,此时只会执行一个except,因为程序一旦出现异常就会立即终止,异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。
  2. except(异常1,异常2   )

   2.万能异常:exception(是一个类,包含了所有异常)

尽量不用,会捕获所有异常。。。。

  

2except  else(放在所有except的最后) 的连用:当没有任何异常时,else被执行。

3except finally(最后)的连用:无论是否发生异常,最后都会执行finally中的代码。(可以用于清理内存)

 

 

 

 

4主动抛出异常:当你写的功能是提供给别人用的,但是别人不按照你写的程序来使用,就会导致程序出错,而我们无法帮助用户处理这个错误,这会就可以主动抛出异常

关键字:raise 后面跟上exception类中的异常种类。

 

5、自定义异常:即定义一个类,来表示异常,这个类必须继承BaseException(python中所有的错误类都是有这个基类派生出来的)

 

6、断言:使用断言来简化代码

assert +布尔

如果布尔为False,直接抛出异常AssertionError(固定的),不能指定异常类型。

如果布尔为True,继续执行后面代码

 

 

posted @ 2018-12-20 20:04  学习汪  阅读(116)  评论(0编辑  收藏  举报