Python学习笔记(七)错误处理及调试

参考资料:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832254674584228cd773d4db5a02ab85d2db4f83e000

https://blog.csdn.net/u013378306/article/details/70146102

1、捕获错误

Python使用try ...except...finally的方式捕获错误。下面的话摘自参考资料:

当我们认为某些代码可能会出错时,就可以用try来运行这段代码,如果执行出错,则后续代码不会继续执行,而是直接跳转至错误处理代码,即except语句块,执行完except后,如果有finally语句块,则执行finally语句块,至此,执行完毕。Python的错误其实也是class,所有的错误类型都继承自BaseException,所以在使用except时需要注意的是,它不但捕获该类型的错误,还把其子类也“一网打尽”。点击这里可查看Python定义的错误类型。2、错误处理在except语句块内捕获错误后,对错误的处理方式包括:

(1)使用print语句将错误输出,继续执行后面的程序。

(2)使用logging函数输出日志,继续执行后面的程序。使用logging函数前,需要调用logging.basicConfig对日志记录参数进行配置,详细配置方式可参考参考资料2。

(3)使用raise将异常抛出。语法格式为:raise 错误类型实例,这里的错误类型可以与捕获的错误类型不一致。

3、调试模式

廖老师语录:程序能一次写完并正常运行的概率很小,基本不超过1%。在可能出错的地方,可以通过以下3中手段辅助调试程序:(1)直接使用print语句将需要查看的信息输出。(2)使用assert(断言):断言捕获到符合条件的错误时,在按照断言定义输出指定信息的同时抛出AssertionError。(3)使用logging(日志)(4)进入调试模式:调用pdb.set_trace进入调试模式。调试模式下常见的命令包括: l:查看代码 n:单步执行 c:继续运行 q:结束运行 p [变量名]:查看变量值注:支持python的集成开发环境都集成了单步调试模式,可以直接在IDE的代码编辑器内设置断点。下面给出我的学习代码:

import logging
import pdb
#配置日志格式
logging.basicConfig(level=logging.INFO, filename='log.txt', format='%(asctime)s day7[line:%(lineno)d]:%(message)s')
#定义一个函数,用于调试
def test():
    #接收用户输入
    m = raw_input("input an integer:")
    #设置断点,进入单步调式模式    pdb.set_trace()
    try:
        print 'try'
        #使用断言调试程序
        assert isinstance(m, int), logging.info('invalid input')
        mm = int(m)
        assert mm != 0, 'input cannot be zero'
        n = 10 / mm
        print n 
    except BaseException, e:
        raise
        #logging.exception(e)
        #print e.message
    finally:
        print 'finally'
    print 'END'
test()
今天就学习到这里啦,下一节从测试开始学习。

猜你喜欢

转载自blog.csdn.net/alvin_2005/article/details/80345375