前頁 メニュー 次頁
続行可能例外
例外(実行時エラー)には続行不能例外と続行可能例外の2種類がある。零除算や桁あふれなど,普通の実行時エラーは続行不能例外である。
続行可能例外は,when本体
に書かれた場合にのみ発生する。続行可能例外を発生させる文として,INPUT文,BREAK文,その他がある。
INPUT文
INPUT文には,それ自身に例外処理の機能が組み込まれている。入力したデータの数の過不足,型の不一致などは,INPUT文自身が処理して,再入力を要求する。
しかし,次のようにWHEN行とUSE行の間に書くとデータ数の過不足,型の不一致などがあると例外を発生させ,例外処理区
に分岐する。
10 WHEN EXCEPTION IN
20 INPUT A,B$
30 USE
40 PRINT EXTYPE
50 END WHEN
EXTYPEの値は,次のようになる。
8102 入力応答が構文的に正しくない
8103 数値変数に代入しようとした値が数値定数でない
8002 データ不足
8003 データ過剰(または最後のコンマが余分)
INPUT文をWHEN本体に書く場合は,次のようにRETRY文を利用するとよい。
100 WHEN EXCEPTION IN
110 INPUT A
120 USE
130 SELECT CASE EXTYPE
140 CASE 8102,8103,8002,8003
150 RETRY
160 CASE ELSE
170 ! 他の例外に対応するコードを書く
180 END SELECT
190 END WHEN
BREAK文
BREAK文をwhen本体で実行すると,extype=10007の例外を発生させ,デバッグウィンドウは表示されない。
したがって,BREAK文を使用してwhen本体をデバッグするのは困難。
(本BASICでは,ブレークポイントを利用すればwhen本体のデバッグも可能。)