【发布时间】:2013-09-12 14:01:40
【问题描述】:
我想解析异常打印,以便不会出现所有异常数据。
例如,我有以下异常消息:
Traceback(最近一次调用最后一次): 文件“C:\flow_development\console_debug_sample.py”,第 52 行,在 raise Exception('发生异常') 异常:发生异常
我想解析这个异常,只会出现异常消息:
异常发生
我用来编码的:
class Unbuffered:
def __init__(self, stream):
self.stream = stream
def write(self, data):
self.stream.write(data)
self.stream.flush()
def __getattr__(self, attr):
return getattr(self.stream, attr)
if __name__ == "__main__":
sys.stdout = Unbuffered(sys.stdout)
sys.stderr = Unbuffered(sys.stderr)
raise Exception('Exception occur')
但是,异常的每一行都分别调用了“write”函数,所以我无法刷新所有异常消息并进行解析。
有什么想法吗?
【问题讨论】:
-
你到底为什么要这么做?你是否意识到你隐藏了很多有用的信息?事实上,如果你曾经提出关于 SO 的问题并且不提供完整异常回溯,人们(包括我)会询问你.所以,我希望你这样做只是因为你想试验异常处理,而不是真正的使用。
标签: python parsing exception flush