错误&异常
2018-09-04 15:22:24   10  举报             
     
         
 AI智能生成
  Python错误&异常的知识点总结
    作者其他创作
 大纲/内容
  4.调试    
     Ipython    
     交互式调试器    
     %debug    
     直接跳到    
     引发异常的栈帧  
     调用[调试器]  
     %pdb    
     出现异常后    
     直接调用[调试器]  
     调试中    
     可执行    
     任意python代码  
     可查看    
     各个[栈帧]中    
     对象&数据  
     调试器命令    
     h(elp)    
     命令列表  
     c(ontinue)    
     恢复程序执行  
     q(uit)    
     退出调试器  
     b(reak)    
     number  
     该行设置断点  
     s(tep)    
     单步进入    
     函数调用  
     n(ext)    
     执行当前行  
     前进下一行  
     a(rgs)    
     显示当前函数参数  
     切换[栈级别]    
     u(p)  
     d(own)  
     其他    
     assert    
     断言    
     判定    
     必须为[真]
为假 则发生异常
    为假 则发生异常
 使用    
     表达式    
     assert  expression[, argumens]  
     e.g.    
     assert  n  !=0, 'n  is  zero!'  
     logging    
     logging.info()    
     允许配置[记录信息]级别  
     代码    
     import  logging
logging.basicConfig(level=logging.INFO)
    logging.basicConfig(level=logging.INFO)
 级别    
     debug/  info/  warning/  error  
     pdb    
     让程序以[单步方式]运行  
     程式    
     以参数 -m  pdb启动  
     输入命令    
     n    
     单步执行代码  
     p    
     查看变量  
     q    
     结束调试
退出程序
    退出程序
 pdb.set_trace()    
     import pdb  
     设置一个断点    
     在可能出错的地方  
     放一个    
     pdb.set_trace()  
     命令    
     p:查看变量  
     c:   继续运行  
     3.补充    
     上下文管理    
     with    
     语法    
     with  context_expr  [as  var]
with_suite
    with_suite
 原理    
     执行完    
     with内的代码块  
     恢复到    
     执行前的状态  
     抛出异常    
     raise  Exception('')  
     raise    
     不带参数    
     原样抛出    
     当前错误  
     获取异常信息    
     sys.exc_info()  
     1.概述    
     错误    
     语法错误  
     逻辑错误  
     异常    
     定义    
     由于程序【错误】    在【正常控制流】以外采取的行为  
     两个阶段    
     检测遇到【错误】    解释器出发【异常】  
     调用不同【操作】             即【处理异常】  
     常见类型    
     BaseException    
     Keyboarslnterrupt        用户中断执行  
     SystemExit             解释器请求退出  
     Exception    
     NameError              访问未申明变量  
     ZeroDivisionError              除零错误  
     SyntaxError           解释器语法错误  
     indexError        索引超出              序列范围  
     KeyError    
     访问不存在的Key  
     IOError    
     输入/输出错误  
     AttributeError    
     访问未知的对象属性  
     ...  
     所有的错误类型    
     都继承自    
     BaseException  
     2.异常处理    
     try:
...
except exception1:
...
except exception2:
...
except:
...
else:
...
finally:
...
    ...
except exception1:
...
except exception2:
...
except:
...
else:
...
finally:
...
 try    
     需要监测的代码  
     若有【异常】发生    
     层层比较    
     exception1,exception2  
     直到找到归属    
     执行语句  
     p.s.    
     语句块中【异常发生点】后的剩余语句    
     永远不会到达  
     except    
     语法    
     except  Exception  [as  var]  
     几种用法    
     捕获多个异常    
     except(Exc1,...  ExcN)  [as  var]  
     放入一个(元组)中  
     捕获所有异常    
     except         空except子句  
     except  Exception  
     excpt  BaseException  
     捕获后忽略错误    
     except  exception:pass  
     流程    
     try-异常-except-finally  
     try-无异常-else-finally  
     vs    
     try-except    
     捕获异常  
     try-finally    
     用于    
     维持一致的行为  
     e.g.    
     关闭文件  
     p.s.    
     如果无法将【异常】交给合适的【处理器】    
     e.g.    
     except后的错误类型             不符合  
     同时没有          不参加的excep  
     【异常将继续】           向上层抛出  
     直到          被捕获 or 造成主程序报错  
     except  +  错误类型             捕获                       该错误类型及所有子类  
     不要                    处理并忽略所有错误           可以    
     捕获【特定异常】并忽略  
     捕获【所有异常】并处理  
     原作者“数林觅风”
https://woaielf.github.io/
    https://woaielf.github.io/
 
 
 
 
  0 条评论
 下一页
 为你推荐
 查看更多