エラー
![]() | この項目では、コンピュータのエラーについて説明しています。その他の用法については「エラー (曖昧さ回避)」をご覧ください。 |
エラー(Error)は、コンピュータにおいて、プログラムがそれらの実行が正常な動作でないと判断し、処理を中断または停止させる状態。エラーの原因は、システムやソフトウェアの不具合、バグなどの多岐にわたる。
概要
コンピュータの動作におけるエラーは、プログラム自身の文法的な誤りによってそれ以上の処理が続行できない状態と、与えられたデータ(情報)に誤りがあり処理が続行できない場合、あるいはオペレーティングシステム(OS)やコンピュータシステムがプログラムの要求に応じられない場合などに発生する。
プログラム上においてエラーとしての認識がなされていない不正な処理ルーチンをバグと言う。また、OSの停止を伴うものはフォルトまたはストールと言う。OSが停止していない場合には、OS側が持つエラー処理ルーチンから排出するエラー情報からバグを見つけられることもある。またOSが停止してもコアダンプなどファイルの形で静的データが保存されている場合は、これを手掛かりとして異常を調査することも可能である。
通常のプログラム開発においては、こういったエラーはエラートラップ(エラー処理とも・後述)と呼ばれる特別の関数(サブルーチン)が処理を引き継ぐよう設計される。エラートラップに引っ掛かったエラーは、予測されるエラーに対して、どうすれば解決できるかを予測できる範疇で対応する。
エラートラップ
エラートラップは、予測されるエラーに対して予め何らかの対抗策をプログラム中に組み込んでおくことである。例えば入力されたデータが異常であれば、プログラム利用者にデータの訂正を求めたり、あるいはデータそのものを処理できないものとして飛ばしてしまう(先送りや後回し)などである。
また、プログラムが複雑化してくると、こういったエラートラップで処理すべき原因が広範囲に及ぶため、特に対応せず処理続行不能としてプログラムを強制的に終了させてしまう場合もある。この場合は、問題となりうる部分のログ出力したり、あるいは寸前の問題なく動作していた時点の状態をセーブして、以前の状態を復旧させる場合もある。
最も単純な対応方法は「エラーが出たらプログラムを強制終了させてしまう」ことである。この方法であれば、最悪コンピュータシステム全体を巻き込んで動作停止する危険性だけは回避できる。ただしこの方法では途中までの処理が失われてしまうことから、プログラム利用者によっては、ストレスを受ける方法である。また、対処方法が明確ではないエラーメッセージも同様で、システムエラーの多くでは、専門の教育を受けたコンピュータ技術者以外には対処が難しいこともあり、同様に一般の利用者にはストレスを与える傾向がある。
エラーとユーザー
パーソナルコンピュータなど、個人が様々な用途に用いるコンピュータは、21世紀初頭に前後して急速に社会に浸透している。この中では高度化されたOSやアプリケーションソフトウェア、あるいはユーティリティソフトウェアなどが、デバイスドライバなど様々なプログラムの介在によって動作している。
この状況下に於いて、コンピュータ周辺機器まで含めると、コンピュータのメインとなるシステムは、その内外とひっきりなしに通信(情報を信号として遣り取り)して処理を行っているが、これはユーザーにほとんど意識されていない。この場合に於いてユーザーが直接目にしているのは、コンピュータの画面に映し出された利用目的に添ったアプリケーションソフトウェアのグラフィカルユーザインタフェース(GUI)などであるが、ここでひとたびエラーが表示された場合、ユーザーにとっては「コンピュータのどこかに異常があってメッセージが出た」という認識しかない。
これがエラートラップが適切で、内部経路を調査の上で的確に問題個所を指示してくれるならユーザーは的確に対応することができる。しかしこれらのメッセージが判り難い場合には、ユーザーは原因不明のエラーメッセージにパニックを起こしかねない。こういった「不親切なエラーメッセージ」としてはブルースクリーンなどが代表的で、末端のユーザーには専ら「これが出たらコンピュータの電源を切る」というレベルで認識されている。
この他、フロッピーディスクを入れっぱなしにして再起動した際に出るエラーメッセージ「 Invalid system disk 」も英語と技術の双方に知識がないと混乱の元である。これはコンピュータハードウェアを司る基本プログラムのBIOSが出すエラーメッセージだが、これに絡んではMicrosoft Windows 95普及以降に、いわゆる「Any keyを探す」などの混乱も聞かれた。
脚注
関連項目
- 例外処理
- ヒューマンエラー
- 故障
- フォールト (技術用語)
- エラー忘却型コンピューティング
- エラーページ