随笔记录方便自己和同路人查阅。

#------------------------------------------------我是可耻的分割线-------------------------------------------

  如果Python遇到错误,他就会生成一些错误信息,称为“反向跟踪”。反向跟踪包含了出错消息、导致该错误的代码行号,以及导致该错误的函数

调用的序列。这个序列称为“调用栈”。

#------------------------------------------------我是可耻的分割线-------------------------------------------

  示例代码:

#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
def spam():
bacon()
def bacon():
raise Exception('This is the error message.')
spam()

  运行结果:

  通过反向跟踪,可以看到该错误发生在第 5 行,在 bacon() 函数中。这次特定的bacon() 调用来自第 2 行,在 spam() 函数中,它又在第 7 行被调用的。在从多个位置调用函数的程序中,

调用栈就能帮助你确定哪次调用导致了错误。

  只要抛出的异常没有被处理,Python 就会显示反向跟踪。但你也可以调用traceback.format_exc(),得到它的字符串形式。如果你希望得到异常的反向跟踪的信息,但也希望 except 语句

优雅地处理该异常,这个函数就很有用。在调用该函数之前,需要导入 Python 的 traceback 模块。

  例如,不是让程序在异常发生时就崩溃,可以将反向跟踪信息写入一个日志文件,并让程序继续运行。稍后,在准备调试程序时,可以检查该日志文件。

  示例代码:

#! python 3
# -*- coding:utf-8 -*-
# Autor: Li Rong Yang
import traceback
try:
raise Exception("This is the error message.")
except:
errorFile = open('d:\\errorInfo.txt','w')
errorFile.write(traceback.format_exc())
errorFile.close()
print('The traceback info was written to errorInfo.txt.')

  反向跟踪文本被写入d:\\ errorInfo.txt。

最新文章

  1. AlloyTouch全屏滚动插件发布--30秒搞定顺滑H5页
  2. SortedDictionary
  3. python多线程生成缩略图
  4. C++ Primer 笔记(1)基础中的战斗机 输入输出 对输入不定数据处理
  5. Project Euler 107:Minimal network 最小网络
  6. C#如何通过NCO3.0来连接SAP并调用SAP中的RFC
  7. MVC C# 调用存储过程
  8. Linux实战教学笔记08:Linux 文件的属性(下半部分)
  9. 设置ActioinBar 的背景色以及Title的字体颜色
  10. 解决jQuery.live在mobile safari(iphone / ipad / ipod)绑定失败的问题
  11. SharePoint 2016 修改左上角连接
  12. 201521123025《java程序设计》第七周学习总结
  13. 程序员如何描述清楚线上bug
  14. FB面经 Prepare: LCA of Deepest Nodes in Binary Tree
  15. [Laravel] Laravel的基本数据库操作部分
  16. 177. Convert Sorted Array to Binary Search Tree With Minimal Height【LintCode by java】
  17. docker 操作
  18. Floyd算法并输出路径
  19. C#打印类
  20. mysql的账号管理

热门文章

  1. 生成brobuff
  2. 微信APP支付后台配置
  3. vscode的python开发环境搭建,环境变量支持终端命令行(执行当前
  4. VUE学习-元素过渡
  5. QT 连接SQLIte数据库
  6. Nacos服务管理
  7. Django 之 ModelForm
  8. vue 使用mixin
  9. Android中动态添加tab
  10. matlab算符合集