``

前頁 メニュー 次頁

    続行可能例外

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