Python 异常处理和捕获

发布时间: 更新时间: 总字数:414 阅读时间:1m 作者: 分享 复制网址

python中用try来处理程序异常的集中常用方法

使用

如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序:

try:
    # Some Code....

except:
    # optional block
    # Handling of exception (if required)

except <异常名> as <数据>:
    <处理异常语句>
    raise

else:
    # execute if no exception

finally:
      # Some code .....(always executed)

说明:

  • exception 的 stack 要从上往下看
  • logging.exception(e) 可打印 stack 信息
  • raise 语句如果不带参数,就会把当前错误原样抛出
  • 若不知道 Some Code 在执行会出什么样的异常,但你还要做异常处理,且想把出现的异常打印出来,并不停止程序的运行,所以在 except ...... 这句应怎样来写呢?

总结了以下至少3个方法:

捕获所有异常

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

采用traceback模块查看异常

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

采用sys模块回溯最后的异常

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

高级

但是,如果你还想把这些异常保存到一个日志文件中,来分析这些异常,那么请看下面的方法:把traceback.print_exc()打印在屏幕上的信息保存到一个文本文件中

try:
    a=b
    b=c
except:
    f=open("c:log.txt",'a')
    traceback.print_exc(file=f)
    f.flush()
    f.close()
最新评论
加载中...
Home Archives Categories Tags Statistics