続行可能例外 例外(実行時エラー)には続行不能例外と続行可能例外の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本体のデバッグも可能。)