``

前頁 メニュー 次頁

    例外状態の伝達  ☆

      関数定義や副プログラムを実行中に例外が発生したとき，例外発生行がwhen本体になければ，例外状態は呼び出し元に伝達される。
      呼び出し元の文がwhen本体にあれば，そこで例外状態処理が行なえる。
      このことは，特に，def文実行中に発生する例外に対して重要である。
    例  y=1/xのグラフを描く
    100 DEF f(x)=1/x
    110 SET WINDOW -2,2,-2,2
    120 FOR x=-2 TO 2 STEP 0.01
    130   WHEN EXCEPTION IN
    140      PLOT LINES:x,f(x);
    150   USE
    160      PLOT LINES
    170   END WHEN
    180 NEXT x
    190 END
    解説  x=0のとき140行のplot文を実行すると，x=0で100行のdef文が実行され，零除算例外が発生する。
      すると，上述の例外状態の伝達が行なわれ，140行で例外状態が発生したのと同じ状態になり，160行が実行されて，実行が継続する。

    ＜補足＞例外状態が呼び出し先から伝達されると，extype関数が返す例外状態番号の値が本来の値に100000を加算した数になる。