Chinaunix

标题: 关于异常处理的的几种方法 [打印本页]

作者: wudicc    时间: 2005-07-27 10:53
标题: 关于异常处理的的几种方法
关于异常处理的问题
--------------------------------------------------------------------------------
我想实现这样的功能:
try:
    语句1
    语句2
    .
    .
    .
    语句N
except .........:
    print .......
我并不知道“语句1至语句N”在执行会出什么样的异常,但我要做异常处理,且想把出现的异常打印出来,并不停止程序的运行,所以在“except ......”这句应怎样来写呢?
--------------------
至少3个方法:

方法一:捕获所有异常

code:
--------------------------------------------------------------------------------

try:
    a=b       
    b=c
except Exception,ex:       
    print Exception,":",ex

--------------------------------------------------------------------------------

方法二:采用traceback模块查看异常

code:
--------------------------------------------------------------------------------

import traceback
try:       
    a=b       
    b=c
except:       
    traceback.print_exc()

--------------------------------------------------------------------------------

方法三:采用sys模块回溯最后的异常

code:
--------------------------------------------------------------------------------

import sys
try:
    a=b
    b=c
except:       
    info=sys.exc_info()
    print info[0],":",info[1]

--------------------------------------------------------------------------------
把 traceback.print_exc() 打印在屏幕上的信息保存到一个文本文件中?
我用str(traceback.print_exc())来转,可是出错!!!!
#正确的方法如下:
#“c:\\log.txt”代表你的Log文件。
code:
----------------------------------------------------------------------------
try:
    a=b
    b=c
except:
    f=open("c:\\log.txt",'a')
    traceback.print_exc(file=f)
    f.flush()
    f.close()
作者: xichen    时间: 2005-07-27 14:01
标题: 关于异常处理的的几种方法
谢谢共享你的知识。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2