Abort, Retry, Fail?

"Abort, Retry, Fail?"（中止、再試行、失敗?）は、DOSオペレーティングシステムで表示されるエラーメッセージの一つであり、エンドユーザに、次にOSが行う行動を選択するよう促すものである。このメッセージは、ユーザビリティの悪いコンピュータユーザインタフェースの例として挙げられることが多い。 MS-DOSの日本語版では、中止 (A), 再試行 (R), 失敗 (F)？と表示された。 DOSファミリのオペレーティングシステム（MS-DOS、PC DOS、DR-DOSなど ）は、CP/M用に書かれたソフトウェアが変更を加えなくてもDOSに移植できるように考慮して設計されていた。 ほとんどのCP/Mシステムでは、ディスクドライブのドアが開いた状態でフロッピーディスクドライブを読み取ろうとすると、ドアが閉じられるまでディスクからの信号を待つ。一部のハードウェアでは、実際の物理ディスクがドライブに挿入されるまでハングアップする。多くのCP/Mのユーザーは、ディスクが正しく挿入されるまでディスクドライブの読み取り操作を停止する仕様を、複数のディスクを管理する方法として利用していた。最初のIBM PCでも、CPUがディスクドライブのドアが開いていると判断できるような高度なハードウェアを備えていたが、エラーが返されると、ファイルを開こうとしたソフトウェアを中断し、ユーザが正しいディスクを挿入するまで待つ。 それでも、可能であれば、ドライブにディスクを挿入しなくてもハングから抜ける方法をユーザに与えることによって、ユーザの体験を改善することが望ましい。このため、DOSでこのエラーメッセージが採用された。 ディスクが見つからないこと（またはディスクドライブのドアが開かれていること）は、DOSによって「クリティカルエラー」（致命的なエラー）として定義され、「クリティカルエラーハンドラ」が呼び出される。デフォルトのクリティカルエラーハンドラは、COMMAND.COMの一部である。エラーハンドラは、"Abort, Retry,..."のエラーメッセージを表示し、ユーザの入力を待つ。他の問題（特に、ディスクからデータを読み取っているときのチェックサムエラー）も「クリティカルエラー」として定義されていたため、ディスクが見つからない、またはディスクドライブが開かれている以外の理由でも、このエラーメッセージが表示された。ユーザは、これらのエラーメッセージに対して、OSが取るべき行動を、対応するキーボードのキーを押すことによって選択した。利用可能な選択は以下の通りである。 中止（Abort、ショートカットキーはA） 操作またはプログラムを終了し、コマンドプロンプトに戻る。実際のところ、プログラムがクリーンアップ（他のファイルの書き込みを完了するなど）をしないので、これは良い選択ではない。初期のDOSは「失敗」の選択が実装されていなかったので、「中止」が必要だった。ソフトウェアの記述が不十分で、「失敗」を選択すると、終了時にほかの箇所でクリティカルエラーハンドラが繰り返し呼び出されるようなループが発生する場合は、引き続き「中止」の選択が必要な場合がある。 再試行（Retry、ショートカットキーはR） 操作を再試行する。「再試行」は、ユーザが問題を解決してから選択する必要がある。例えば、ユーザーがドライブのドアを閉じるのを忘れていた場合は、ユーザはドアを閉じてから「再試行」を選択し、システムは途中で中断した場所から続行する。初期のハードウェアでは、ディスク読み取りエラーによってメッセージが表示されることが多かったため、何もせずに「再試行」を選択して処理に成功する場合もあった。ディスクドライブが改善されるにつれて、この原因でメッセージが表示されることが少なくなった。 無視（Ignore、ショートカットキーはI） 操作の失敗にもかかわらず、呼出元のプログラムまたはルーチンに成功ステータスを返す。例えば、ディスクの読み取りエラーは無視され、DOSは、ディスクから読み取れた正しいデータの一部が含まれている可能性のある読み取りバッファ内のデータを返す。データの使用が不可能な場合（ディスクが見つからなかった場合など）は、エラーメッセージに「無視」が表示されず、選択ができなかった。 失敗（Fail、ショートカットキーはF） MS-DOS/PC DOS 3.3以降、クリティカルエラーハンドラから「失敗」を返す機能が追加された。「失敗」を選択すると、「ファイルが見つかりません」(file not found)などの他のエラーと同様に、プログラムにエラーコードが返され、プログラムは正常に問題から回復することができる。「失敗」の選択肢が追加されたことにより、プログラムをクラッシュさせたり、プロンプトを繰り返し表示したりするという、このエラーメッセージの最大の問題が取り除かれた。DOS 3.3のCOMMAND.COMでは、起動オプション/Fをつけることで、デフォルトのクリティカルエラーハンドラが全てのエラーで強制的に「失敗」を返すようにすることができるようになった。 このエラーメッセージは、大衆文化において、人をイライラさせる無駄なメッセージの一例となっている。DOS 3.0以前では、「再試行」を選択してもすぐにエラーメッセージが繰り返され、他の選択肢を選ぶと、プログラムが終了して、それまでの作業が無駄になる。「失敗」の選択肢が追加されたことにより、作業が無駄になるのを避けることができるという点で状況は幾分改善されたが、ユーザが「失敗」以外を選択する理由がなく、このエラーメッセージはまだ役立たずのままだった。 1993年、ニール・ハウ（英語版）は、"13th Gen: Abort, Retry, Ignore, Fail?"という、ジェネレーションXの文化についての同情的な本を発表した。 1996年、ホワイト・タウンは、">Abort, Retry, Fail?"というタイトルのCDをリリースした。 『PC Magazine（英語版）』は、この言葉をユーモラスなコンピュータ関連のエラーに焦点を当てたコラムのタイトルとして使用している。 コマンドまたはファイル名が違います (Bad command or file name) エラーメッセージ PC LOAD LETTER ^ a b “Computer-Assisted Embarrassment”. Nielsen Norman Group. 2017年8月4日閲覧。 ^ a b Randy Hyde (29 Sep 1996). “19.1.3: Exception Handling in DOS: The Critical Error Handler”. The Art of Assembly Language Programming. http://webster.cs.ucr.edu/AoA/DOS/ch19/CH19-2.html  ^ “Action Taken on Abort, Retry, Ignore, Fail (67586)”. Microsoft Knowledge Base. Microsoft (2006年11月16日). 2009年4月18日閲覧。 ^ Howe, Neil; Bill Strauss (1993). 13th Gen: Abort, Retry, Ignore, Fail? (1st ed.). New York: Vintage Books. ISBN 978-0679743651  ^ “Abort, Retry, Fail?_ Your Woman”. discogs. 2008年4月18日閲覧。 ^ Louderback, Jim (2006年5月3日). “PC Magazine's Extreme Makeover”. 2008年7月27日閲覧。