|
>C言語に限らないんですが、アプリケーション開発者にとってのエラー処理の意味とアプリケーション利用者にとってのエラー処理の意味について知りたいんですが、誰か教えてくれませんか?
まずエラーには文法エラー、論理エラー、実行時エラーの3つに大きく
分けられます。開発者はこの3つのエラーをすべて取り除くように努力
しなければなりません。
・文法エラー…言うまでもなくコンパイルが通らないエラーです。これを
取り除かないとそもそも実行ファイルが出来ません。
・論理エラー…プログラムの内部的ロジックに問題があるために起こる
エラーです。コンパイルが通るのにどうも実行結果が期待
したのと違う場合このエラーに該当します。通常デバッグ
作業とはこのエラーを取り除く事に該当します。
・実行時エラー…プログラムとは関係なく、主にコンピュータの物理的
性質から発生するエラーです。(例:メモリ不足、ファイル
が開けない、ディスクの容量不足等)このエラーはOS、
ハードウェアの違いによって元のプログラムは全く同じで
も様々な現れ方をします。プログラム開発者は使用者にこ
の種のエラーに遭遇しても最小限の被害で済むような仕掛
けをしておくべきです。(フリーソフトではこの種の対策
が一般に少なく、商用ソフトは多い)
使用者が遭遇するエラーはこの実行時エラーが主なもので
す。C++はこの種のエラーに対応しやすくするため例外処理
機能を備えています。
学習者は当然プログラマを目指しているのですからエラー
が発生したらこの3つのうちどのエラーに該当するのか
素早く判断できる能力を養う必要があります。
また、アプリケーションがさらに言語を備えている場合は
サンプルプログラムを除きその実行結果の責任はすべて
使用者にあります(例:EXCEL VBA等)。インタプリタ型の言
語の場合最悪の状況でも暴走しないような配慮はできるだ
けプログラマ側ですべきではありますが。
|