2012-03-11 9 views
0

私はPythonでncursesアプリケーションを開発しています。しかし、いつも、私の2番目のスレッド(または何か他のもの)が例外を投げたり、テキストを印刷したりすると、ウィンドウが乱れてしまいます。Python curses - いい方法でエラーテキストを取得する

私のすばらしいncursesプログラムデザインを台無しにすることなく、このテキストをキャッチして正しく処理する方法はありますか? :)

+0

また、デフォルトの例外ハンドラ(あなたの質問は、この点に焦点を当てているが、それはあなたが望むものをほぼ確実ではありません)のプリントアウトを抑制することができます、[try/catch](http://docs.python.org/tutorial/errors.html#handling-exceptions)ブロックについて知っていますか? –

+0

もちろん、2つのクラスがあり、どちらも2つのスレッドで一緒に実行されています。 1つのクラスはncursesのものをやっていて、2番目は接続などです。しかし、その2番目のエラーがいくつかのexternライブラリで発生すると、そのエラーはncursesの画面に書き込まれます。 – Blaskovic

+0

なぜ、スタックトレースを取得しないように書き込みエラーの原因となっている例外をキャッチしませんか? –

答えて

1

まず第一に、catchあなたのスレッドのコールスタックの入口ですべての適切な例外をいただき、ありがとうございます。すべての可能性が高い場合、スレーブスレッドは例外を(例えばQueueを介して)ディスプレイまたはおそらくログに中継するためにそれを捕捉する必要があります。あなたは「どのように私はこれをキャッチしない」と言うとき

import sys 

sys.stdout.close() 
sys.stderr.close() 
関連する問題