| 2024/09/29(Sun) 11:49:53 編集(投稿者)
5番めの黄金律は、
5.Offer Simple Error Handling です。
訳すと「エラーの処理を簡単にさせる」ですね。
5.エラーの処理を簡単にさせる
できる限りユーザーが致命的なエラーを起こさないように設計しなければならない。 しかし,もし工ラーが起きてしまったら,システムがその原因を見つけ出し,単純でわかりやすいエラーの処理方法を提供するように心がける。 たとえば,コマンド全部を再入力するのではなく,間違えた箇所だけを訂正すればよいようにすべきである。 または,間違ったコマンドを入力してもシステムの状態が変化しないようにするか,元の状態に戻す方法を提示しなければならない。 【引用】ユーザー・インタフェースの設計 : 使いやすい対話型システムへの指針|ベン・シュナイダーマン 著|日経BP社 1987|ISBN4-8222-7053-X
桐的に意訳すると次↓のようになります。
5.エラーの処理を簡単にさせる( Offer Simple Error Handling )
出来るだけユーザが致命的なエラーを起こさないように設計しなければならない。 しかし、もしもエラーが起きてしまったならば、アプリケーションがその原因を見つけ出して、単純で分かり易い対処方法を提供するように心がける。
※「たとえば」以降の文言はコマンド入力型のアプリケーションで、入力したコマンドが間違っていた場合の例を挙げているので翻案しません。
「エラー」と言っても実はさまざまな種類があります。
例えば、
[予期せぬエラー] ⇔ [予期されたエラー]
という区分けでは、[予期せぬエラー]は回避しようがありませんが、[予期されたエラー]の場合には適切なフィードバックをするべきです。
例えば、[一覧表印刷条件開始]コマンドで指定した[給紙方法]・[用紙サイズ]がプリンタドライバに適合しない場合にはエラーになります。
この場合には、メッセージボックスでエラーの【原因】と【対処方法】をユーザに示すことが出来ます。
以下は[拙作:ガントチャート]の手続き:prcPrintListCreateCommandAlert( ) の例です。
&msg = "<アラート(警告)>" &msg = &msg + "\n\n一覧表印刷条件の作成に失敗しました" &msg = &msg + "\n\nエラー番号:" + #cond( &mErrorRefErrno > 0, "KU", 1, "KD" ) + #str( &mErrorRefErrno ) &msg = &msg + "\n\nエラーメッセージ:" + &mErrorRefErrmsg &msg = &msg + "\n\nエラーの詳細:" + &mErrorRefDetail &msg = &msg + "\n\nイベント処理:" + &mErrorRefCmdname &msg = &msg + "\n\n行番号:" + #str( &mErrorRefLineno ) &msg = &msg + "\n\n<対処方法>" &msg = &msg + "\n\n一覧表印刷条件開始 &mPrintListName,用紙サイズ=&用紙サイズ,給紙方法=&給紙方法,用紙の向き=横,上余白=1000,…" &msg = &msg + "\n\n↑このコマンドで使用している変数名:" + &variableName + " の値を" &msg = &msg + "\n\nプリンタ:" + #桐プリンタ名 + " の【" + #文字置換( &variableName, &ersand, #u ) + "】に適した値に変更してください" &icon = "!" 手続き実行 INFprcMsgPause( &icon, &title, &msg )
[予期されたエラー]というのは、PCの周辺装置(ネットワークを含む)に関するエラーです。
一方、[予期せぬエラー]はアプリケーションをリリースする前に十分なテストを行う事でエラーの発生を予防できます。
ただし、十分なテストを行ったとしても、テストから漏れた潜在虫が残る可能性はゼロにはなりません。
しかし、十分なテストを行った場合には、プログラムは安定していて、潜在虫が見つかる可能性は非常に低くなります。
|