2012-03-11 43 views
0

我正在python中开发ncurses应用程序。但是每当我的第二个线程(或其他任何东西)抛出异常,或者打印som文本时,它都会让我的窗口变得混乱。Python curses - 以不错的方式获取错误文本

有没有任何选择,如何捕捉这个文本并正确处理它,而不会破坏我真棒的ncurses程序设计? :)

谢谢

+0

当你说“我怎么抓住这个” ,你知道[try/catch]块(http://docs.python.org/tutorial/errors.html#handling-exceptions)吗? – 2012-03-11 22:05:15

+0

是的,当然,但我有2个类,两个线程都在一起运行。一个类正在做ncurses的东西,其次是关于连接,等等......但是如果第二个写一些错误,哪些出现在某个extern库中,那么这个错误会写入accros我的ncurses屏幕。 – Blaskovic 2012-03-11 22:24:29

+0

那么为什么不捕捉导致写入错误的异常,以免得到堆栈跟踪呢? – 2012-03-12 00:17:35

回答

1

首先,catch一切适当的异常在进入到你的线程的调用堆栈。在所有情况下,从属线程都应该捕获它以便将异常(例如通过Queue)转发给显示器或者可能是日志。

或者,也可以抑制默认的异常处理的打印输出(虽然你的问题重点在这方面,它几乎肯定不是你想要的):

import sys 

sys.stdout.close() 
sys.stderr.close()