python中的堆栈跟踪和异常处理

时间:2012-09-30 23:16:45

标签: python python-2.7

我想设计一个python程序来处理其他程序中的异常,我也想让它在python中访问堆栈跟踪。我是新的python开发但我愿意学习,但我没有指导在哪里继续。有人可以指点我可以遵循的方向/资源,也许可以发展这些技能,特别是我应该学习如何实现我的目标。

我想在python 2.7上开发它

感谢您的回复。

编辑:通过处理异常,我只想知道发生了什么异常。就像在Java中使用try catch块一样,你可以打印堆栈跟踪,看看它是否是算术/数组越界错误

嗨,我也想到了这一行

之类的东西
  try

 (Execute python program here)  // ie import this program 

 except : 1st exception
 except : 2nd exception
 .
 .
 etc

我知道如何从文件中读取,但不确定这对于执行其他人编写的程序是否正确?

2 个答案:

答案 0 :(得分:0)

查看traceback模块。它格式化并打印堆栈跟踪。您可以使用它是顶级异常处理程序。

import sys
import traceback

try:
    do_something()
except:
    ex, val, tb = sys.exc_info()
    traceback.print_exception(ex, val, tb)

Python本身基本上会对任何未被捕获的内容执行此操作,然后退出。

答案 1 :(得分:0)

我对你的问题有点困惑;如果你只运行其他python代码,这将是自动的。您不需要读取任何文件,只需导入要使用的python模块并调用它们的函数即可。当这些抛出异常时,它们只会在你的代码中结束,你可以按照你认为合适的方式处理它们,同时考虑到关于例外情况的最佳实践。

有关python异常的快速教程,请查看here