意図しているのは tryでエラートラップを仕掛け、エラーが発生した時だけ
except内を処理するというものです。
#define global try %ttry onerror *%i #define global except %ttry *%o: onerror 0: if err { %c #define global tryend } try a = 10 / 1 ;a = 10 / 0 ;エラー19 try b = 9, "abc" ;エラー31 except mes "内側No." + err + "エラーです" tryend except mes "外側No." + err + "エラーです" tryend mes if err: mes "いつまでもerrは残ります" try c = 1 ;c("key") = 5 ;エラー6 except mes "別の部分No." + err + "エラー" tryend mes "おわり"
システム変数errでエラーがあるかどうかを判定しているので、一度でもエラーが
発生すると、errがクリアされない限り何度でもexcept内が実行されてしまいます。
err = 0 が実行出来れば解決なんですが、それはダメな様です。
なにか他にいい方法があれば教えて下さい?
そもそもエラーが起こったらその時点で終了するというのがHSPのお約束なのでしょうか?