我想设计一个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
我知道如何从文件中读取,但不确定这对于执行其他人编写的程序是否正确?
答案 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。