前頁  メニュー  次頁


例外状態の伝達  ☆

  関数定義や副プログラムを実行中に例外が発生したとき,例外発生行が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を加算した数になる。