HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0809
b関数内でのonerrorのreturn3解決


b

リンク

2015/8/9(Sun) 17:21:58|NO.70573

関数もしくは命令の中でonerrorを発動させてい時にはどうすればよいのでか?
例えば

#module #defcfunc gettext str fname notesel notef noteload fname onerror wparamが12(ファイルがない場合)はreturn -1 〜いろいろ〜 return 1 #global のように関数内でエラーが起こった場合にreturnする方法を教えてください。 goto/gosubすると関数からreturnできないようです。



この記事に返信する


b

リンク

2015/8/9(Sun) 17:23:23|NO.70574

</pre>
をつけ忘れました。
最後の2行は質問です。



掘木

リンク

2015/8/10(Mon) 10:26:48|NO.70586

過去ログを見る限り似たような事例の質問があります。
その際具体的な解決策が提示されていないところを見る限り、不可能だと思われます。
http://hsp.tv/play/pforum.php?mode=pastwch&num=45291

HSP的にはそもそもonerrorからは速やかな終了を推奨している。

エラー上等で処理部を作って例外処理を書いて回避手段を書くVBA等の流儀とはこの辺りまったく異なり、
例外は発生する前に自前で検知する、そういう言語なんだと思う。HSPってのは。

この考えで行くと問題になるのが画像読み込みである。
これを上手く作れるのなら相当プログラムに関して理解がある方だと思う。

( // 駄文 // error発生時にサブルーチンスタックをクリーンする仕様ゆえに、 サブルーチン及び関数呼び出し時のエラーに対してonerrorでの飛び先からの復帰が不能が確定する。 それはすなわち、画像の読み込みを要する関数を作成する場合には、 「自前でファイルの存在を検知」「ヘッダの正統性」「ファイル内部が正常」であることを保証しないと、 画像読み込み命令が呼べないと言っていい。 この保証を得るのはHSP単体で記述するには厳しいだろう。 何より規格が多いし、動作中のPCに対応しているかがHSP命令群では不明なところがでるだろうから。 結果的にDLL呼び出し等のAPIに頼らざるを得ない部分が出ると考えられる。 そんなコードをHSPコーダがほぼ全員理解するべき内容と考えるのだろうか? (・・・どっちかというとHSPが実行時エラーに対してズボラな面が露呈しているとも) IsValidPicloadFileとかそんな機能の命令(関数?)があるべきなのでは?とは思う。 )



b

リンク

2015/8/10(Mon) 18:59:48|NO.70593

exist方式にしました。
onerrorの判断をしているAPIがあるならそれを使ってonerror独自版が作れそう



ONION software Copyright 1997-2021(c) All rights reserved.