Solaris 共通デスクトップ環境 プログラマーズ・ガイド

第 3 章 アプリケーションからのエラーの表示

アプリケーションを実行しているユーザは、メッセージ・フッタ、エラー・ダイアログ、または警告ダイアログにメッセージが表示され、適宜、詳しい説明がオンラインヘルプにあることを期待します。共通デスクトップ環境のアプリケーションは、エラー・メッセージと警告を表示するための共通モデルに従います。

エラー・メッセージの表示方法

メッセージ・テキストの処理方法のために、ダイアログ、フッタ、または別のユーザ・インタフェースのどこかに表示しないと、ユーザはアプリケーションからのメッセージを見ることができません。

共通デスクトップ環境 (CDE) では、そのようなメッセージは、通常のユーザが定期的に調べることのないログ・ファイルに出力されます。警告、メッセージ、およびエラー条件を表示する場所を決めるときには、次の規則に従ってください。

エラー・ダイアログに表示する情報

優れたエラー・ダイアログまたは警告ダイアログでは、次の情報をユーザに提供します。

4、5 行のエラー・ダイアログで説明できない場合には、ダイアログにヘルプ・ボタンを追加して、ヘルプ・ボタンをアプリケーションのヘルプ・ボリューム内のトピックにリンクすることを検討してください。

メッセージの作成の詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド(国際化対応編)』を参照してください。

メッセージ・ダイアログとオンライン・ヘルプのリンク

追加の背景情報が必要な場合や、4、5 行のダイアログではエラーを十分に説明できない場合には、オンライン・ヘルプにリンクするボタンを追加できます。

ダイアログのオンライン・ヘルプの追加は単純な作業です。特定のダイアログをオンライン・ヘルプの候補として決めたら、次の作業を実行します。

  1. エラー・ヘルプに対して固有な ID を選択します。

    この ID が、オンライン・ヘルプ・テキストへのリンクとなります。ID は、64 文字以下でなければなりません。たとえば、DiskSpaceError のようになります。

  2. ダイアログを作成して、ヘルプ・コールバックを追加します。

    エラー・メッセージに対しては XmCreateErrorDialog()簡易関数を、警告に対しては XmCreateWarningDialog()簡易関数を使用して、次のようにヘルプ・コールバックを追加します。

    XtAddCallback(dialog, XmNhelpCallback,	helpfn, "ID");

    この例では、helpfn はヘルプ・ダイアログを管理するために作成したヘルプ関数、文字列「ID」は、エラー・メッセージに対して選んだ ID です (たとえば、 DiskSpaceError)。ヘルプ関数では、XmNlocationId リソースを ID の値に設定します。/usr/dt/examples/dthelp ディレクトリに、このようなヘルプ関数の設定例があります。

    ヘルプ・ダイアログ・ウィジェットの作成と管理の詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド(ヘルプ・システム編)』を参照してください。

  3. エラー・メッセージに対応するヘルプ・セクションを書きます。

    ヘルプ・ボリュームの「メッセージ」の章に、メッセージの説明を書きます。ヘルプのソース・ファイルでは、メッセージごとにセクションを設けなければならず、セクションの始めの ID= 属性は、コードの中でエラーに対して選んだ ID と一致しなければなりません。

    たとえば、s1 セクション見出しでは、ID は DiskSpaceError です。

    次の見出しは、ユーザのシステムに十分なディスク領域がないときに、「ファイルを保存できません」というエラー・メッセージを表示します。

        <s1 ID=DiskSpaceError> ファイルを保存できません <¥s1>

    規則によって、セクション見出しのテキストはエラー・ダイアログのテキストと 1 対 1 で対応しなければならないので注意してください。

  4. ヘルプ・ファイルを再作成します。

    エラー・メッセージに対する新しいヘルプ・セクションは、ヘルプ・ファイルを再作成して (dthelptag プログラムを使用して)、アプリケーションを再コンパイルするとすぐにアクティブになります。

オンライン・ヘルプの記述と作成方法の詳細は、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド(ヘルプ・システム編)』を参照してください。

回復処理ルーチン

エラー条件のための回復処理ルーチンがある場合には、ダイアログに [再実行] ボタンを追加することを検討してください。たとえば、システムのディスク空間が不足しているためにファイルをコピーできなかった場合、ダイアログに [再コピー] オプションがあれば、ユーザは、ディスク空間やアクセス権の問題を訂正してから、そのオプションを選択できます。