2012-03-11 44 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()