Python:16.错误和调试

# 错误处理

# try
'''
1. 可以有多个except
'''
try:
    pass
except ZeroDivisionError as e:
    print('except:',e)
finally:
    print('finally...')

# 记录错误
'''
1. logging模块:同样出错,但程序打印完错误信息后会继续执行,并正常退出
2. logging可以把错误记录到日志文件里,方便事后排查。
'''
import logging
def main():
    try:
        pass
    except Exception as e:
        logging.exception(e)
    finally:
        pass

# 抛出错误
'''
1. raise语句:抛出一个错误的实例
'''

# 调试

# 断言
'''
凡是用print()的地方都可以用断言(assert)来替代
'''
def foo(s):
    n = int(s)
    assert n != 0, 'n is zero!'
    return 10 /n

# pdb
'''
1. Python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态

启动:
-m pdb 文件名.py

单步执行代码:
n

查看变量:
p 变量名

结束调试:
q

'''

# pdb.set_trace()
'''
1. 导入import pdb
2. 在可能出错的地方放一个pdb.set_trace(),就可以设置一个断点

查看变量:
p 变量名

继续运行:
c

'''
import pdb

s = '0'
n = int(s)
pdb.set_trace() # 运行到这里会自动暂停
print(10/n)

你可能感兴趣的:(Python:16.错误和调试)