Loading

9.异常

异常的概念
  程序在运行时,如果python解释器遇到一个错误,会定制程序的执行,并且提示一些错误信息,这就是异常
  程序停止执行并且提示错误信息这个动作,我们通常称之为:抛出异常
  程序开发时,很难将所有特殊情况都处理的面面俱到
  通过异常捕获可以针对突发事件作集中的处理,从而保证程序的稳定性和健壮性
 
简单的异常捕获
在程序开发中,如果对某些代码的执行不能确定是否正确,可以增加try(尝试)来捕获异常,except是python为我们提供的一个异常处理的类
语法格式
如图 如果我们需要输入一个整数,但是输入了其他的类型,就会报错并且终止程序执行,ok没有被输出
如果程序没有错误,except就不会执行
我们使用异常捕获try来处理代码,代码报错就会执行except抛出想要的异常信息,不会终止程序,ok继续输出
 
错误的类型捕获
  在程序执行时,可能会遇到不同类型的异常,并且需要针对不同类型的异常,做出不同的响应
  这个时候,就需要捕获错误类型
 
语法: exceot 后面跟上错误类型
当python解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型
 
 
捕获未知错误
  如果希望程序无论出现任何错误,都不会引用python解释器抛出异常而被终止捕获未知错误使用
语法:
e 是我们自定义的一个变量,可以是e,也可以是其他自定义变量, 用于下方接收数据
 
异常捕获的完整语法
  else:只有在没有异常时才会执行的代码
  finally:无论是否有异常,都会执行的代码
无异常:
有异常:
 
 
异常的传递
  异常的传递--当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方
  如果传递到主程序,仍然没有异常处理,程序才会被终止  
  在开发中,可以在主函数中增加异常捕获
  而在主函数中调用其他函数,只要出现异常,都会传递到主函数的异常捕获中
  这样就不需要在代码中,多处地方都异常捕获,保证代码的简洁
例如在第四行出现异常(输入非整数),没有找到异常,然后传递给第七行调用,没有找到异常继续向上传递 到第九行,传递给函数的调用一方,
一直传递到主程序中,没有发现异常处理,就会报错
 
由于异常有传递性,会一层一层向上传递直到主程序中,可以利用异常的传递性,只在主程序中捕获异常,就不需要在每个函数中都捕获异常
 
主动抛出异常的应用场景
应用场景
  在开发中,除了代码出错python解释器会抛出异常以外
  还可以根据应用程序特有的需求主动抛出异常
 
抛出异常
  python中提供了一个Exception异常类
  在开发时,如果满足特定的业务需求时,希望抛出异常,可以
    1.创建一个Exception对象
    2.使用raise关键字抛出异常对象
    3.在调用处捕获主动抛出的异常
 

posted @ 2021-02-22 17:05  木子七  阅读(28)  评论(0编辑  收藏  举报