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)

给出较全的异常信息,包括异常信息的类型,如1/0的异常信息

"ZeroDivisionError(‘integer division or modulo by zero‘,)"

3、e.message

获得的信息同str(e)

4、采用traceback模块

  需要导入traceback模块,此时获取的信息最全,与python命令行运行程序出现错误信息一致。使用traceback.print_exc()打印异常信息到标准错误,就像没有获取一样,或者使用traceback.format_exc()将同样的输出获取为字符串。你可以向这些函数传递各种各样的参数来限制输出,或者重新打印到像文件类型的对象。

示例如下:

import traceback

print ‘########################################################‘
print "1/0 Exception Info"
print ‘---------------------------------------------------------‘
try:
    1/0
except Exception as e:
    print ‘str(Exception):\t‘, str(Exception)
    print ‘str(e):\t\t‘, str(e)
    print ‘repr(e):\t‘, repr(e)
    print ‘e.message:\t‘, e.message
    print ‘traceback.print_exc():‘; traceback.print_exc()
    print ‘traceback.format_exc():\n%s‘ % traceback.format_exc()
print ‘########################################################‘
print ‘\n########################################################‘
print "i = int(‘a‘) Exception Info"
print ‘---------------------------------------------------------‘
try:
    i = int(‘a‘)
except Exception as e:
    print ‘str(Exception):\t‘, str(Exception)
    print ‘str(e):\t\t‘, str(e)
    print ‘repr(e):\t‘, repr(e)
    print ‘e.message:\t‘, e.message
    print ‘traceback.print_exc():‘; traceback.print_exc()
    print ‘traceback.format_exc():\n%s‘ % traceback.format_exc()
print ‘########################################################‘ 

示例结果

时间: 2024-10-07 22:49:45

Python中获取异常(Exception)信息的相关文章

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

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

python进阶四(类的继承)【4-5 python中获取对象信息】

python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 6 class Student(Person): 7 def __init__(self, name, gender, score

重构获取异常栈信息--printStackTrace

MyStackTrace: /** * * @author wumingkun * @version 1.0.0 * @Description */ package com.demo.stacktrace; import java.io.PrintStream; /** * @author wumingkun * */ public class MyStackTrace { public static String getStackTrace(Throwable errors) { String

PHP获取http头信息和CI中获取HTTP头信息的方法

CI中获取HTTP头信息的方法: $this->input->request_headers() 在不支持apache_request_headers()的非Apache环境非常有用.返回请求头(header)数组. $headers = $this->input->request_headers(); ------------------------------------------------------------------------------------------

Python 基础6 异常 exception

异常(基础) exception: 异常 是与正常相对的情况: 什么是错误? 错误是指由于逻辑或语法等导致一个程序无法正常执行的问题: 特点: 有此错误是无法预知的: 什么是异常: 异常是指程序出错时标识的一种状态: 当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态: 作用: 用作信号,通知上层调用者有错误需要处理: try语句: 两种语法: try - except 语句 try - finally 语句 try - except语句语法: 1 try: 2

三十五:python中的异常

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

android:如何从照片中获取拍摄地址信息

在开发中遇到一个需求,需要解析拿到照片拍摄时的地址信息,在网上有很多网站提供照片上传后解析出照片的具体信息,很详细.android也很给力,提供ExifInterface ,可以获取到拍摄照片时的很多信息. TAG_DATETIME 时间日期 TAG_FLASH 闪光灯 TAG_GPS_LATITUDE 纬度 TAG_GPS_LATITUDE_REF 纬度参考 TAG_GPS_LONGITUDE 经度 TAG_GPS_LONGITUDE_REF 经度参考 TAG_IMAGE_LENGTH 图片长

统一处理jquery ajax请求过程中的异常错误信息的机制

当jQuery ajax向服务器发送请求,服务器发生异常,比如:400.403.404.500等异常,服务器将异常响应给客户端,此时的ajax可以获取异常信息并进行处理,但此时我们一般是跳转到与异常编码对应的异常页面,对异常集中展现与处理. 首先,发送ajax请求: $.ajax({ type: ‘POST’, url: url, data: data, success: success, dataType: dataType }); 然后,服务发生异常,将对应的异常编码响应给客户端: resp

sql 2012中获取表的信息,包含字段的描述

1.获取数据库中的表 select name from sysobjects where type='U' 2.获取表字段(此处是Route表) Select name from syscolumns Where ID=OBJECT_ID('Route') 3.获取表中字段的描述 SELECT value FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'Route', 'column', default) 4.获取表的