python中使用traceback来追踪异常

test1.py中,当分母为0的时候,调用系统退出

#!/usr/bin/python
import sys
def division(a=1, b=1):
    if b==0:
         print ‘b eq 0‘
         sys.exit(1)
    else:
         return a/b

test2.py中,用try..except捕获异常,然后traceback.print_exc()打印。

#!/usr/bin/python
import sys
import traceback
import test1 

a=10
b=0

try:
    print test1.division(a,b)
except:
    print ‘invoking division failed.‘
    traceback.print_exc()
    sys.exit(1)

运行test2.py失败抛出异常。

$python test2.py

execution python-2.5.1/python (enodeb/linux)

b eq 0

invoking division failed.

Traceback (most recent call last):

File "test2.py", line 10, in <module>

test1.division(a,b)

File "/home/fesu/test1.py", line 6, in division

sys.exit(1)

SystemExit: 1

时间: 2024-10-11 22:57:41

python中使用traceback来追踪异常的相关文章

python中try except处理程序异常的三种常用方法

如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: try: 语句1 语句2 ... 如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: 1 2 3 4 5 6 7 8 try:     语句1     语句2     .     .     语句N except .........:     do something ....... 但是你并不知道"语句1至语句N"在执行会出什

python中的logging

python logging模块可能会令人困惑的地方 通过参阅python logging模块的代码,发现一些有趣的现象: 1. logging对象其实是一个树形结构,每个创建的logging对象都是root logging对象的孩子结点.当使用logging模块的getLogger(name=None)函数构造logging对象的时候,如果name为None,这样会产生一个root logging对象.如果name中含有.,比如name = 'a.b.c',通过这种方式会产生3个logging

Python中获取异常(Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序结构.如下所示 try: ... except Exception as e: ... 1.str(e) 返回字符串类型,只给出异常信息,不包括异常信息的类型,如1/0的异常信息 'integer division or modulo by zero' 2.repr(e) 给出较全的异常信息,包括异

Python中获取异常(try Exception)信息

异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置. 这里获取异常(Exception)信息采用try...except...程序结构.如下所示: try: ... except Exception, e: ...经典例子: import traceback print '########################################################' print "1/0 Exception Info" print '---

Python 中异常嵌套

在Python中,异常也可以嵌套,当内层代码出现异常时,指定异常类型与实际类型不符时,则向外传,如果与外面的指定类型符合,则异常被处理,直至最外层,运用默认处理方法进行处理,即停止程序,并抛出异常信息.如下代码: try: try: raise IndexError except TypeError: print('get handled') except SyntaxError: print('ok') 运行程序: Traceback (most recent call last): File

三十五:python中的异常

Python提供了两个非常重要的功能来处理异常和错误: 1)   异常处理try-.except 2)   断言assert 异常和断言,可以用于我们调试python程序,跟踪程序执行状态,尽快排查问题. 35.1 python中的标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 Gene

python中不同的异常类型,如何进行异常处理?

一.错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) 2.逻辑错误:(逻辑错误),比如用户输入的不合适等一系列错误 那什么是异常呢? 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下.异常发生之后,异常之后的代码就不执行了 异常种类:在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识, 不同的类对象标识不同的异常,一个异常标识一种错误 常见的异

python中利用tracekback跟踪栈以及打印异常信息

?##sys.exc_info() 返回 (type, value, traceback). type为异常类型, value为异常的参数(通常为异常错误的信息), traceback为跟踪回溯的对象. exc_type, exc_value, exc_traceback = sys.exc_info() print "*** print sys.exc_info:" print 'exc_type is: %s, exc_value is: %s, exc_traceback is:

Python中logging模块的基本用法

在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 怎样进行日志记录相关配置 日志记录使用常见误区 下面我们来梳理一下整个演讲的过程,其实其核心就是介绍了 logging 模块的使用方法和一些配置. 日志记录的重要性 在开发过程中,如果程序运行出现了问题,我们是可以使用我们自己的 Debug 工具来检测到到底是哪一步出现了问题,如果出现了问题的话,