過去の桐井戸端BBS (桐ver.8)
15657 訳のわからないエラーメッセージが表示されたときまず何からチェックすればいいのでしょうか jimmy cliff 2002/04/09-22:24
桐を使い始めて丸2年、テーブルとレポートへと割とスムーズに使えるようになり
そろそろ自分でも初級卒業かなと思い始めている今日この頃です。
が、いまだに単純に「#表引き」で引っ張ってくる表の「項目名」を間違えたりします。
そこで質問です。
訳のわからないエラーメッセージが表示されたとき
まず何からチエックしますか?
テーブル、レポートにかかわらず教えてください。
15658 追伸 jimmy cliff 2002/04/09-22:39
記事番号15657へのコメント
舌足らずですみません、
条件式のエラーについてです。
ちなみに私、「桐ならできる」3請求書編でレポートを作成しながら
請求書の宛先を指定する条件式の項目名を間違い、
よっぽど出版社にクレームをつけようかと3日間迷いやっと自分の間違いに気づいたばか者です。

15673 エラー原因発見法 佐田 守弘 2002/04/10-23:24
記事番号15657へのコメント
jimmy cliffさん
エラーと一口に言っても、状況が千差万別ですが、エラー原因を見つける秘訣の様なものはあります。
以前執筆した「入門桐ver.5一括処理編」(エーアイ出版)のp26〜32に述べております。
しかしもう売られていないと思うので、そのエッセンスだけを簡単に申し上げます。

●実行できないエラーと実行できるエラー
エラーは大きくこの2つに分けられます。
そして、途中で止まるエラーは、案外と原因が簡単で発見しやすいのです。
問題は一見正常に動作しながら、予測していない事をしてくれるエラーでしょうね。

●エラーメッセージの解釈が大切
 >訳のわからないエラーメッセージが表示されたとき
まずこれが大切ですね。
一見して訳が分からない様に見えますが、これがエラー対策の最大のヒントです。
但し、本当の原因は、メッセージで表示された以外の所にある場合も少なくありません。
例えばある計算式でエラーが発生したとして、その原因が別の場所で、
代入すべき変数の記述を間違えていたためといった場合もあります。
エラーメッセージから根本原因を見抜くのは経験と素養しかありません。

●エラーの原因
多くのエラーは、変数名や項目名などの記述ミスから発生している事が多いものです。
その他にも、計算式で括弧の付け忘れなど、いわゆる文法エラー的なものが大多数を占めていると思います。

●変数などの値を追及してみる
止まるエラー、止まらないエラーを含めて、エラーが起きた場合、
私はまず最初に変数や項目値、あるいは計算式などの値を追及します。
表形式であれば変数管理などで値の確認ができます。
フォームであれば、確認したい変数や計算式を表示するテキストボックスを臨時に作って、
その値を確認します。
レポートも同様で、確認用のテキストボックスを作って印刷してみます。

そして、その値が期待する値以外であった場合に、
どうしてその値がそのようになるのかを、調べて行きます。

●エラーを発生しにくくする作り方をする
エラーの根絶は不可能かも知れませんが、少なくする事は可能です。
一言で簡単に言えば、見やすいプログラムを作る事です。
分かりやすい変数名を使う、変数名の命名ルールを決めておく、
プログラム構造を見やすくする書き方をするなどがその一例でしょう。
これだけで、エラーが減り、原因解明もやりやすくなります。

●人に相談する
当たり前の様な答えで、当たり前の答えではありません。
人に答えを求めるために相談するのではなく、何が問題になっているかを説明するために相談する、
そういった相談の仕方です。
相談相手がいなければ、自分一人で文章に書いてみて下さい。
これも単に「変だ」ではなく、本来こうなるべきなのに、こうなっている。
この値はここで決まるはずで、ここではこの様になっているはず、
という様に、論文でも書く位の積もりで、
人に説明する積もりになって自分の頭の中を整理してみて下さい。
それだけで、人に説明しているうちに、あるいは文章をまとめているうちに、
原因は自分で発見できるものです。

佐田守弘(KS-00119)
15678 Re:エラー原因発見法 jimmy cliff 2002/04/11-00:18
記事番号15673へのコメント
丁寧な解答有難うございます。
最後の人に相談するの所はよくわかりました。
しかし、わからない事を文章で表現するのはとても難しいですね。
書いたものを推敲してみると、読む人にはとても理解できないだろうと我ながら思います。
特に単純なミスでも、悩みはじめるとドツボにはまってしまって抜け出せなくなります。
人に聞くのも、まず答えを教えて欲しくてたまらなくなります。

ありがとうございました。

戻る