python基础第九节

异常

逻辑代码和处理异常代码不放在一起

try:

except:

异常机制本质

异常处理成语在出现问题时依然可以正确的执行剩余的程序。不会因为异常终止程序

处理异常的类 异常类

异常类定义中包含了该类异常的信息和对异常进行处理的方法

异常也采用对象的方式来处理:

(1)抛出异常。,生成异常对象,停止当前执行路径,异常对象给解释器。

(2)捕获异常,解释器得到该异常后,寻找相应代码来处理异常

try except 基本结构

try:

        被监控的可能引发异常的语句块

except BaseException[as e]:   #BaseException[所有异常的根类,吧异常对象赋给e变量

        异常处理语句块

try块包含着可能引发异常的代码,except块用来捕捉和处理发生的异常

try多个except结构

try:

        被监控的语句块

except  Exception1:

        xxx

except Exception 2:

        xxx

按照先子类后父类的顺序捕获异常

try except else  

如有有异常执行except 没有异常执行else

try except finally 结构

finally 结构 无论是否发生异常都会执行,通常用来释放try块中申请的资源

 return 结束方法运行、返回值  一般不放到异常处理结构中,放到方法最后

常见异常的解决

(1)SytaxError 语法错误

(2)NameError 尝试访问一个没有声明的变量

(3)ZeroDivisionError 除数为0 错误

(4)  ValueError 数值错误

(5)TypeError 类型错误

(6)AttributeError 访问对象不存在的属性

(7)IndexError 索引越界异常

(8)KeyError 字典的关键字不存在

With 上下文管理

相对于finally块释放资源的代码,可以使用with上下文管理来释放资源。

with context_expr[as var]:

         语句块

with代码块执行完毕后自动还原进入改代码之前的现场或上下文

在文件操作 网络通信相关的场合非常有用,不论是否有异常总能保证资源正常释放,极大的简化了工作

with open() as f:

        

traceback 模块

追溯 

traceback_print_exc()  放在except 后面  

还可以帮助我们把异常信息输出到文件中

自定义异常类

自定义异常类一般都是运行时异常,通常继承Exception 根类是BaseException  子类是Exception

用raise来主动抛出异常‘

if __name__ == "__main__"  #如果为True 则模块是作为独立文件运行,可以执行测试代码

自定义异常类中定义__str__(self):

Pycharm 开发环境调试模式

调试器设置断点,debug   step into step over

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值