简介

为Python加入利于调试的traceback信息。

动机

Python抛出异常时,会显示一些traceback信息。但是,一些时候这些信息并没有很多作用,不足以让你确定问题出现的原因。

这也是你大多数时候使用debugger的原因,你需要知道哪些代码运行,相关的变量当时是什么值...

作用

stackprint1并不是sentry2这种完整的错误监控系统,它只是为Python提供一个改良版的crash信息。

作者说,有时候他会使用这个工具来代替debugger。但是大多数时候,这个工具的作用是代码在别处运行,异常只会被记录到错误日志中的时候,可以帮助稍后判断问题原因。

而且,可以为traceback信息加入彩色。

用法

  • 可以为你整个Python替换traceback方式.

  • 可以将单个项目的python traceback全局替换.

    比如在项目的__init__.py中调用set_excepthook()

    import stackprint
    stackprint.set_excepthook(style='color')
  • 可以指定的异常设置.

    except块中调用show()format()

    try:
    something()
    except:
    # 捕获当前的异常,打印traceback到stderr
    stackprint.show()
    # ...将traceback转换成字符串
    traceback = stackprint.format()
    logger.error(traceback)

热度分析

这个Repo的首个commit日期是2018.9.2。截止到2019.5.2日,这个Repo获得了695star, 15fork.

源码分析

这个库的源代码满满的C风格,很多的函数定义。实现的原理应该是应用了编译原理,tokenize之类的,以我现在的水平很难看懂。

个人评分

类型 评分
实用性 ⭐️⭐️⭐️⭐️
易用性 ⭐️⭐️⭐️⭐️
有趣性 ⭐️⭐️⭐️
代码质量 ⭐️⭐️⭐️⭐️

【AMAD】stackprint -- 为Python加入利于调试的traceback信息的更多相关文章

  1. [转] python程序的调试方法

    qi09 原文 python程序的调试方法 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python de ...

  2. [置顶] 如何在Python IDLE中调试Python代码?

    好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...

  3. Python异常和调试.md

    异常捕获 try 基本概念 我们使用try except来捕获异常,python的try except有几个特点: 不管函数内部嵌套几层,只要在try的范围内就可以被捕获.这句话的意思是一个函数被tr ...

  4. Python帮助函数调试函数 用于获取对象的属性及属性值

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  5. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  6. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  7. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  8. python使用post登陆电子科大信息门户并保存登陆后页面

    python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...

  9. Python标准库09 当前进程信息 (部分os包)

    原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...

随机推荐

  1. 题解 [ZJOI2008]树的统计Count

    [ZJOI2008]树的统计Count Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w.我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u ...

  2. jsp大文件传输断点续传源码

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...

  3. 富文本编辑器粘贴复制Word

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  4. SSH整合框架

    实现登录.新闻增删改查.树形菜单 引入pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  5. codeforces412A

    Poster CodeForces - 412A The R1 company has recently bought a high rise building in the centre of Mo ...

  6. ETL-拉链算法-1

    参考链接:http://blog.csdn.net/nisjlvhudy/article/details/8559518 自己的理解: 主要针对数据的状态变化 表:原表:source 目标表:targ ...

  7. Android学习_内容提示器

    内容提供器 1. 创建自己的内容提供器 1)         继承ContentProvider类,重写6个方法:onCreate().query().insert().update().delete ...

  8. fatal error C1189: #error: "Oops: min() and/or max() are defined as preprocessor macros. Define NOMINMAX macro before including any system headers!"

    1.问题描述 vs2015 使用pg数据库的C++库文件4.0.1版本libpqxx.dll,包含头文件#include "pqxx\pqxx" 出现这个错误: fatal err ...

  9. BZOJ2208连通数

    还是挺简单的tarjan. 判断时可能重复,直接bitset搞定. 首先tarjan缩点,每个scc的内部肯定能互相到达,更一下,而且一个scc里的各个点的贡献肯定是一样的,topsort,更新答案就 ...

  10. 两次取反 !!a 的作用

    两次取反的作用 让a的结果只能是false或者是true:如果a是0:两次取反当然是false:如果a是null:两次取反是false:如果a是undefined:两次取法是false:其余的比如 a ...