; gosub実行中のonerror gosubに関する検証 onerror gosub *error_routine gosub *sub_routine stop *sub_routine picload "gomi.jpg" ; 壊れている、もしくは存在しない画像ファイル return *error_routine if err == 13 : return ; 画像読み込みのエラーならば無視してreturn dialog "エラーコード=" + err end
上記の検証プログラムを私の環境で実行すると、エラー10が発生します。
gosubでサブルーチンに飛んでいる最中に、エラーでonerrorのgosubが実行されreturnで復帰した場合、
元のgosubに対するreturnでエラー10が発生するようです。
いろいろ試してみたところ、#deffuncで定義した命令を実行中のonerror gosubでも同様に、
#deffuncに対するreturnがエラー10扱いになってしまいます。
これは仕様なのでしょうか?
何か回避する方法はありますか?
よろしくお願いいたします。
/* onerrorの使い方として美しくない、という御批判も御座いましょうが…
「フォルダ内にある大量のJPEG画像(破損ファイル含む)を片っ端から読み込んで、
破損ファイルはスキップし、読み込めた画像だけ処理」というプログラムを組んでいる途中で
この問題にぶち当たりました。
そもそもpicloadの読み込み失敗で強制終了という仕様が謎です。stat=1で良いのでは…?*/