文系でもわかるBASIC入門
21.エラーの対処法を覚えよう
プログラミングをしていると必ずエラーと遭遇(?)します。
これは避けて通れないものです。
幸いこのBASIC言語はエラーの発生箇所や原因が比較的分かり易いです。
エラーの内容を理解して、その解決方法を学びましょう。
エラーメッセージ一覧(一部)
この講座で使用しているツールのエラーメッセージを一部紹介します。
ここに無いものは、ツールのヘルプやネットで検索しましょう。
なお、エラーメッセージの後ろにある数値は、
エラーの発生している行番号を示している場合が多いです。
[ Duplicate Definition ]
[ Duplicate label ]
[ NEXT without FOR ]
[ Illegal function call ]
[ Out of DATA ]
[ RETURN without gosub ]
[ Subscript out of range ]
[ Syntax error ]
[ Type mismatch ]
Division by Zero (/0)
ゼロ(0)で割ったときに発生するエラー。
対処法:
値が0にならないようにする。または
値が0のとき、判断文(IF)などを使って計算しないようにする。
Duplicate Definition
一度、宣言した配列を再び宣言したときに発生するエラー。
(これを二重定義という)
対処法:
二重定義をしない。
以下のように、二重定義をしているか見た目に分からない場合もあるので注意。
原因:
配列変数は、宣言してなくても添字10までなら使用できる。
配列変数を使用すると宣言をしたものとして扱われる。
対処法:
添字10以内の配列変数でも宣言をして使用中であることを明確にする。
繰り返し処理の中で宣言をしている場合も注意が必要です。
原因:
繰り返し処理の中で、配列変数が二重定義されてしまう。
対処法:
繰り返し処理の中に、配列変数の宣言をしない。
Duplicate label
同じラベル名を2つ以上設定したときに発生するエラー。
対処法:
同じラベル名を付けない。
NEXT without FOR
FOR と NEXT が正しく対応していないときのエラー。
対処法:
変数名の付け間違いに注意する。
Illegal function call
命令や関数の使い方を間違えているときのエラー。
対処法:
マニュアルをよく読んで、正しくパラメータをセットする。
Out of DATA
DATA行中のデータ数が足りず、READで読むべきデータが無いときのエラー。
対処法:
データの数だけREADが実行されるようにする。
例えば次のようにデータがあるだけ読み込みたいとき、単純に読み込むとエラーになる。
このようなとき、データの終わりにエンドデータを用意する。
エンドデータを読み取ったら、それ以降の読み取りを中止する。
エンドデータは、処理中に使わない数を使用すること。
RETURN without gosub
GOSUB と RETURN が正しく対応していないときのエラー。
対処法:
サブルーチンとして使用する箇所をしっかりと区別し、その範囲内でのみ RETURN を使うようにする。
Subscript out of range
配列変数の添字の値が宣言の範囲から外れているときのエラー。
ちなみに、配列変数の宣言を省略したとき、添字10で宣言される。
対処法:
配列変数の宣言時の添字を確認して、使用時にその範囲を超えないよう注意する。
次のように、別の変数を使って添字を管理する場合、オーバーし易いので注意。
対処法:
宣言したときの範囲をオーバーしないように判断文でチェックする。
Syntax error
文法のミス、または、スペルミスのときのエラー。
対処法:
ヘルプやネットで正しいスペル、正しい命令の使い方を確認する。
Type mismatch
異なる型同士で処理(演算)を行ったときのエラー。
対処法:
異なる型同士の処理を行わない。
数値と文字列を合わせて処理しなくてはならない場合、どちらかの型に合わせて行う。
数値を文字列へ変換する関数(または文字列を数値に変換する関数)を使用する。