第10章 调试

10.1 抛出异常

  1. 当python试图执行无效代码时,就会抛出异常;
  2. 抛出异常相当于:停止运行这个函数长得代码,将程序执行转到except语句中
  3. 抛出异常只用raise语句,raise语句包含:①raise关键字;②对Exception函数的调用;③传递给Exception函数的字符串,包含有用的出错信息
>>> raise Exception (‘That is the error message.)
  1. 若没有try和except语句覆盖抛出异常的raise语句,程序会崩溃,因此,通常raise语句在一个函数中,try和except语句在调用函数的代码中

10.2 取得反向跟踪的字符串

  1. 反向跟踪的定义:如果python遇到 错误,他会生成一些错误信息,称为反向追踪

  2. 反向追踪包含:①出错信息;②导致该错误的代码执行号;③调用栈,即导致该错误的函数调用的序列

  3. 只要抛出的异常没有被处理,python就会显示反向追踪

  4. 得到异常的反向追踪的信息,同时使用except语句处理该异常:使用traceback.format_exc()函数

  5. 使用traceback.format_exc()函数,需要导入traceback模块

10.3 断言

  1. 断言:是一个检查,确保代码没有做什么明显错误的事
  2. 由assert语句执行这些检查,若检查失败,则抛出异常10.4.1
  3. assert语句包含:①assert关键字;②条件,即求为True或者False的表达式;③逗号;④当条件为False时现实的字符串

10.4 日志

  1. 记日志的好处:理解程序中发生的事,以及事情发生的顺序
  2. python的logging模块可创建自定义的消息记录
  3. 一方面,日志消息将描述程序执行何时到达日志函数调用,并列出指定变量当时的值;另一方面,缺失日志消息表明有一部分代码被跳过,从未执行

10.4.1 使用日志模块

  1. 导入logging模块
  2. python记录一个事情的日志时,会创建一个LogRecord对象,保存关于该事件的信息
  3. logging模块的函数可让你指定想看到的LogRecord对象的细节,以及希望的细节展示方式

10.4.2 日志级别

  1. 日志级别:提供一种方式,按重要性对日志消息进行分类
    在这里插入图片描述
  2. 日志级别的好处:可以改变想看到的日志消息的优先级

10.4.3 禁用日志

  1. 调试玩程序之后,如果不希望所有这些日志消息出现在屏幕上,可采用禁用日志
  2. logging.disable(0函数:手工删除所有的日志调用;或者向其 传入一个日志级别,他就会禁止该级别和更低级别的所有日志消息
  3. 禁止所有日志可在程序中添加:logging.disable(logging.CRITICAL)

10.4.4 将日志记录到文件

  1. 除了将日志消息显示在屏幕上,还可将日志消息写入文本文件中
  2. logging.basicConfig()函数:接受filename关键字参数,将日志信息保存在myProgramLog.txt文件中

10.5 IDLE的调试器

  1. 调试器是IDLE的一项功能,让你每次执行一行程序。调试器将运行一行代码,然后等待你告诉他继续。
  2. 启用调试器:在交互式环境窗口点击Debug—Debugger,就能打开调试控制窗口(Debug Control)
  3. 调试控制窗口出现后,勾选4个复选框:Stack Locals Source Globals,这样窗口显示全部调试信息

10.5.1 Go

点击Go按钮将导致程序正常执行至终止,或者到达一个断点

10.5.2 Step

点击Step按钮将导致调试器执行下一行代码,然后再次暂停

  • 如果变量的值发生变化,调试控制窗口的全局变量和局部变量列表会更新
  • 如果下一行代码是一个函数调用,调试器会步入那个函数,体哦啊到该函数的第一行代码

10.5.3 Over

点击Over按钮将执行下一行代码,与Step按钮类似

  • 如果下一行代码是函数调用,over按钮会跨过该函数的代码
  • 该函数的代码将全速执行,调试器将在该函数返回后暂停

10.5.4 Out

点击out按钮将导致调试器全速执行代码行,直至他从当前函数返回

10.5.5 Quit

点击Quit按钮将导致马上终止该程序

10.5.6 断点

  1. 断点可以设置在特定的代码行上,当程序执行达到该行时,它迫使调试器暂停
  2. 设置断点的方法:在文本编辑器中该行代码点击右键,并选择Set Breakpoint
  3. 清除断点的方式:在文本编辑器章该行代码点击右键,并此从菜单中选择Clear Breakpoint
  4. 带有断点的代码行会在文本编辑器中以黄色高亮显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值