前頁  メニュー  次頁


続行可能例外

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