甲府方重信Blog

...Shigenobu Koufugatas Blog

  • Increase font size
  • Default font size
  • Decrease font size
Error
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
  • Unable to load Cache Storage: database
Home 業務日誌 Adaプログラミング Adaチュートリアル セクション10.1 例外処理の基本

Adaチュートリアル セクション10.1 例外処理の基本

E-mail Print PDF

セクション 10.1 - 例外処理の基本

エラーとその他の例外的状況は、現実世界において実行されるプログラムにおいて取り扱われなければなりません。Adaは、例外的状況をより容易に取り扱うために、これらの現実の問題を取り扱うための機構を提供しています。Adaでは、例外は例外的状況の種類を表現し、通常は深刻なエラーです。実行時には例外が上げられ、例外的状況が発生したという事実に注意を向けることになります。

例外があがった場合のデフォルトの設定は、プログラムの停止となっています。通常、このプログラムは例外の名前をプリントアウトします。そして、そのプログラムが実行していた箇所もプリントアウトします。これはプログラマーのコンパイラーに依存しています。次のいくつかのセクションは、このデフォルトをどのように上書きするかを示しています。

もしプログラマーがプログラムを停止させたくなかった場合、プログラマーはAdaに例外ハンドラーを定義することによってどうすべきかを伝えることができます。例外ハンドらーは、どの例外を取り扱うか、そして、決められた例外があがった場合に何をすべきかを記述します。

一般的に、例外はいつも通りではなく、期待されているのとは違った何かを表現しています。言い換えれば、深刻なエラー条件のような事柄に対して例外は利用されます。例外は、期待された状態に対して用いられるべきではありません。というのも、例外はプログラムを遅くすることがあり得ますし、もし正しく取り扱われなければ、プログラムを停止させてしまうこともあります。例外があがった箇所は、それが取り扱われる場所からはかなり離れている可能性があります。そして、このような場合、おびただしい量の異なった例外をプログラムが扱う場合には、理解が難しくなることがあります。その代わり、サブプログラムがなにか重要な理由によってその作業を実行できない場合、 例外を利用すべきです。

Adaは、一連の事前定義された例外を持っており、これは特定の言語が定義しているチェックが失敗した場合に上がります。プログラマーが見ておきたいと思われる、この事前定義されたチェックはConstraint_Errorです。この例外は型の値が範囲外になった場合に上がります。この例には、型に対し大きすぎる値を格納しようとした場合や、小さすぎる値を格納しようとしたりする場合、ゼロによる割算、無効な配列のインデックスの利用などが含まれます。

自然と、これらのチェックを全て実行するのには、実行時に一定のオーバーヘッドが存在します。しかし、これはプログラムが思うよりもずっと小さいものです。これらの言語定義のチェックを抑制することが可能です。これはプログラムが全体的にデバッグされた後にのみ実施されるべきです。そして多くの人々はそれでもなお、抑制をすべきだないと考えています。

いくつかのパッケージは、独自の例外を定義しています。たとえば、Text_IOはEnd_Error例外を定義しており、これはプログラマーがファイルの末尾に到達した後に、「Get」などを実行しようとした際に上がります。そしてName_Errorは、存在しないファイルをオープンしようとした際に上がります。

次のいくつかのセクションで、私たちは例外をどのように定義し、どのように例外があがり、どのように例外を取り扱うかを学んでいきます。

出典: http://www.adahome.com/Tutorials/Lovelace/s10s1.htm

Last Updated on Tuesday, 31 January 2012 08:28  

ニュース速報

リナックスアカデミーでのLinuxセキュリティの4回目。

内容は、

1、CentOS 4.8のネットワークインストール

2、サーバーの構築。ただし、セキュリティに考慮したものにする。

手順が簡略化されているので、とまどっている様子。

PCによっては、CD-ROMが認識されないものがある。