导图社区 Python错误、异常
Python错误、异常的知识导图,介绍了概述(错误、异常)、异常处理、调试(IPython、Logging、pdb)等。
JavaSE-JavaEEDB思维导图,包括:Spring、Hibernate框架、struts2框架、js+jquery+ajax、JSP、Servlet(后期补充)、HTTP协议。
Java SE知识思维导图,包括:Java基础语法、Java OOP编程、Java高级特性、JDK8、Eclispe等内容。
Java知识思维导图,包括:1、Java环境及配置;2、语法、数据类型及表达式;3、结构化程序设计;4、数组与字符串;5、类和对象。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Python错误、异常
概述
错误
语法错误
逻辑错误
异常
定义
由于程序【错误】
在【正常控制流】以外采取的行为
两个阶段
检测到【错误】
解释器触发【异常】
调用不同【操作】
即【处理异常】
常见类型
BaseException
Keyboardlnterrupt
用户中断执行
SystemExit
解释器请求退出
Exception
NameError
访问未申明变量
ZeroDivisionError
除零错误
SyntaxError
解释器语法错误
IndexError
索引超出
序列范围
KeyError
访问不存在的Key
IOError
输入/输出错误
AttributeError
访问未知的对象属性
所有的错误类型
都继承自
异常处理
try:
... except exception1: ... except exception2: ... except: ... else: ... finally: ...
try
需要监测的代码
若有【异常]发生
层层比较
直到找到归属
exception1,exception2…
执行语句
p.s.
语句块中【异常发生点]后的剩余语句
永远不会到达
except
语法
except Exception [as var]
几种用法
捕获多个异常
except (Exc1,…ExcN) [as var]
放入一个【元组】
捕获所有异常
空except子句
except Exception
except BaseException
捕获后忽略错误
except exception:pass
有【异常】
else
可选
无异常发生
无【异常】
finally
无论是否有异常
最后都要执行
流程
try→异常→except→finally
try→无异常→else→finally
vs
try-except
捕捉异常
try-finally
用于
维持一致的行为
e.g.
关闭文件
如果无法将【异常】交给合适的【处理器】
【异常】将继续
向上层抛出
直到
被捕捉or造成主程序报错
except+错误类型
捕获
该错误类型及所有子类
不要
处理并忽略所有错误!
可以
捕获【特定异常】并忽略
捕获【所有异常】并处理
调试
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[,arguments]
logging
logging.info()
允许配置【记录信息】级别
代码
import logging
logging.basicConfig(level=logging.lNFO)
级别
debug/info/warning/error
pdb
让程序以【单步方式】运行
程式
以参数-m pdb启动
输入命令
n
单步执行代码
p
查看变量
q
结束调试
退出程序
pdb.set_trace()
import pdb
设置一个断点
在可能出错的地方
放一个
命令
c
继续运行
补充
上下文管理
with
with context_expr[as var]:
with_suite
原理
执行完
with内的代码块
恢复到
执行前的状态
抛出异常
raise Exception('')
raise
不带参数
原样抛出
当前错误
获取异常信息
sys.exc_info()