您的位置:首页 > 其它

错误处理及调试

2015-09-12 23:20 330 查看

try..except…finally

try:
code
except error as e:
code
else:
code     #没有错误时执行
finally:
code     #不管有没有错误都执行

code        #正常


抛出错误

raise关键字将错误抛出。

def foo(s):
n = int(s)
if n == 0:
raise ValueError('invalid value: %s'%s)
return 10/n


调试

print()

在可能的地方,用print()

断言

跟print()差不多

def foo(s):
n = int(s)
assert n != 0,'n is zero'
return 10/n

foo('0')


logging

将print()替换成logging,可以控制输出哪个级别的信息。

import logging
logging.basicConfig(level = logging.INFO)
s = '0'
n = int(s)
logging.info('n = %d'%n)
print(10/n)


level的级别有debug、info、warning、error

pdb

python -m pdb xxxx.py


l查看所有代码

n单步执行程序

p 变量名查看变量

q结束调试。

c继续运行

#err.py
import pdb
s = '0'
n = int(s)
pdb.set_trace()  #设置断点
print(10/n)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: