- 编码占了编程工作量的90%,调试占了另外90%
- 抛出异常使用raise语句,在代码汇总,raise语句包含以下部分
raise关键字
对Exception函数的调用
传递给Exception函数的字符串,包含有用的出错信息。 - 如果乜有try和except语句覆盖抛出异常的raise语句,该程序就会崩溃,并显示异常的出错信息,
通常调用该函数的改吗知道如何处理异常,额而不是该函数本身。所以在raise语句在一个函数中,try和except语句在调用该函数的代码中。 - 如果python遇到错误,它就会生成一些错误信息,称为“”反向跟踪“”。 反向跟踪包含了出错消息,导致该错误的代码行号,以及导致该错误的函数的调用的序列。这个序列称为调用栈。从报错信息的最后一行开始层层回调,看最终是哪里先调用的,然后报错。
因为只要抛出的异常没有被处理,Python就会显示反向跟踪。 - 抛出异常,捕获异常,将异常写入日志文件,排查信息
调用traceback_format_exec()函数,import os, traceback dir_path = os.getcwd() + '/' def spam(): bacon() def bacon(): try: raise Exception("this is the error mesage") except: errorFile = open(dir_path + 'error_info.txt', 'w') errorFile.write(traceback.format_exc()) errorFile.close() print("The traceback info was written to error_info.txt") spam()
-
断言:由assert语句执行检查,看看是否做了明显错误的事情,如果检查失败,救护抛出异常。主要包括
assert关键字
条件
逗号
当条件为False的时候显示的字符串 四部分组成。
程序不应该使用try except来处理assert语句,如果assert失败,程序就应该崩溃。
在python 运行的时候传入-O 选项,可以禁用断言。 -
日志
通过日志记录程序中发生的事情,以及事情发生的顺序。logging模块,文件开头添加: import logging logging.basicConfig(level=logging.DEBUG, format=' %(asctime)s - %(levelname)s - %(message)s') 禁止日志: logging.disable(logging.CRITICAL)
日志级别:DEBUG是最低级别的,如果只看ERROR,可以只打印ERROR,忽略,debug,info,waring的日志。
保存日志到文件:myProgramLog.txt文件,指定即可
logging.basicConfig(filename='myProgramLog.txt', level=logging.DEBUG, format=' %(asctime)s - %(levelname)
-
调试器和断点的使用,用来帮助调试代码,发现bug
-
小结
断言、异常、日志和调试器,都是在程序中发现和预防缺陷的工具。
Python第十章 调试
猜你喜欢
转载自blog.csdn.net/q1138266752/article/details/83869413
今日推荐
周排行