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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0913
kenエラーメッセージの呼び出し4解決


ken

リンク

2010/9/13(Mon) 20:32:34|NO.34980

例えば
info=ginfo(-1)
を実行すると

#Error 21 in line n(???)
→サポートされない機能を選択しました。

というエラーメッセージが出ますがこのメッセージをスクリプトから意図的に呼び出すことはできますか?



この記事に返信する


木村

リンク

2010/9/13(Mon) 20:43:45|NO.34981

 マクロにしてしまえば、任意のタイミングで呼び出す事が可能です。(おまけにエラーを
発令した行数も分かる) 以下は一例


#define ENFORCE_ERROR ______ = ginfo(-1) if stat = 0 : ENFORCE_ERROR



ken

リンク

2010/9/13(Mon) 21:37:21|NO.34986

木村さんありがとうございます。

なーるほど!
と思ったのですが実は

#module #define ENFORCE_ERROR ______ = ginfo(-1) #defcfunc test int k switch k case 0 rtn=0 swbreak case 1 rtn=1 swbreak default ENFORCE_ERROR swend return rtn #global p=test(1);ok p=test(3);→Error line nn

こんなふうにmoduleで使いたいのですがp=test(3)を実行した行がエラーといってほしいのですが
どうしたら良いですか?
説明不足でですみませんでした。



木村

リンク

2010/9/13(Mon) 22:23:10|NO.34987

 以下のような代物で良いでしょうか。

#define global ENFORCE_ERROR dialog \ "#Error 2.3 in line "+reading_line+"(hyahha-)\n-->サポートされない機能を選択しました♪" \ , 1, "Error" : end #module #define global ctype test(%1) ____test(%1,__line__) #defcfunc ____test int k, int reading_line switch k case 0 rtn=0 swbreak case 1 rtn=1 swbreak default ENFORCE_ERROR swend return rtn #global p=test(1) p=test(3)
 レノス様の技法を流用して作ってみました。以下は簡単な説明です。参考までに。
1,本来の関数召喚過程の間にマクロを放り込む
2,マクロを利用して引数に__line__(行数を返すシステム変数)を取る
3,エラーコードっぽい代物をマクロで作る(ENFORCE_ERROR)



ken

リンク

2010/9/13(Mon) 22:36:49|NO.34988

木村さん
ありがとうございます!

意図する結果が得られました。
__line__
こんなシステム変数があったのですね。
勉強になりました。



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