2011-01-24 13 views
0

SWT/Jfaceアプリケーションでは、例外をユーザに正しく表示する方法はありますか?私はlog4jを使用して例外を記録しますが、私はそのメッセージをユーザに表示する必要があります。SWTの例外の表示

Eclipseの場合と同じメッセージボックスを使用できますか?しかし、私はそれを使う方法を知らない。

事実:複数の例外が発生した場合、すべての例外を1つの一意のメッセージボックスに表示して、ユーザーがボックスを閉じるために一度クリックするだけでよい。

ありがとうございます。

答えて

0

はに私に手掛かりを与えます私が欲しいもの:

クラスorg.eclipse.core.runtime.SafeRunnerorg.eclipse.jface.util.SafeRunnable AR eは、swt/jfaceによって例外がどのように処理されるかを理解するのに適しています。

それはそのように使用することができます

SafeRunner.run(new ISafeRunnable() { 
     public void run() throws Exception { 
      // code that throws exceptions... 
     } 
    }); 
1

あなたはまさにあなたのようにそれを行うには、他のGUIフレームワークになります:可能な場合、ユーザーへ

決して存在例外

OK、短期では、appliction内部例外を処理します。例外は、ユーザーメッセージのラッパーではありません。アプリケーションの内部信号で、何かが悪くなり、アプリケーションを通常通りに続行できなくなります。メッセージとスタックトレースは、開発者や管理者が問題を見つけて解決するのに役立ちます。

何かがある場合、貧弱なユーザーは(ネットワーク接続の確認など)何かを変更できるため、ユーザーが理解できるメッセージを作成します(例外には該当しません)メッセージボックスに1つ。

ログファイルとその読み方を知っている人には例外を付けないでください。


別のコメントから、私はあなたの意図を読んでいます:開発段階で詳細を表示してください。したがって、開発コードとプロダクションコードでは異なる動作が必要です。 デバッグコードを追加して、エラーが発生した場合の詳細情報を表示するコードを追加します。

メッセージを受け取り、ユーザーに提示するアプリケーション全体のサービスを実装することを検討してください。プロダクションコードの実装では、の "user friendly"(ローカライズされた)メッセージのみが表示されますが、開発目的の実装ではデバッグ情報(完全なエラーメッセージ)も表示されます。

これを完璧にするには、カスタム拡張ポイントを定義し、別のバンドルのUser Message Serviceに「デバッグ拡張機能」を追加することができます。そのバンドルをインストールしないと、ユーザーは拡張メッセージを取得しません。

+0

私はば完全にあなたに同意:ユーザーは、問題の技術的な原因を知っている必要はありません。だから、私は自分のExceptionで根本的な例外をラップした。これらの例外メッセージは一意であり、ユーザーfreindlyです。しかし、いくつかのエラーが発生した場合、それらを1つのエラーメッセージボックスに表示したい。 – fluminis

0

MessageBoxを使用できます。

  
    MessageBox messageBox = new MessageBox(shell, SWT.ICON_ERROR); 
    messageBox.setMessage("error message"); 
    int result = messageBox.open(); 
    ... 

あなたがユーザーに例外のリストを表示したいのはなぜ

「は、2つ以上の例外が発生した場合、私は1つのユニークなメッセージですべての例外をリストしたいです」?。ユーザーは、エラーに関する情報と、それを回避または修正する方法のメッセージのみが必要です。

あなたが梱包したい、またはより多くの情報を与える例外のリストを投稿できますか?

+0

開発中に、すべての例外のリストと共に「詳細を表示」のようなものを持つメッセージボックスは、本当に助けとなり、生産性を向上させることができます。 – fluminis

0

私はAndreas_Dとyeraycaballeroの回答のみをサポートできます。彼に例外を表示すると、ユーザーは混乱するだけです。

ここSWTのメッセージボックスを使用する方法の他の例: http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/DemonstratestheMessageBoxclass.htm

あなたはまた、公式EclipseのAPIドキュメントに有用な情報を見つけることがあります。コードを掘り下げる http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/widgets/MessageBox.html

関連する問題