たつきちさんの文章は落ち着いてて凄く丁寧なのになぜか分かりにくい。
なのでたつきちさんの発言内容を少し整理。今更ですが。
・現在ソフトを開発中である。
・dmminiを使っている場合、何らかのエラーが発生するとフリーズする。(エラー内容はhgimg3に関係あるなしにかかわらない。)
・フリーズを回避するためにはonerror先でdmmbyeする必要がある。
・onerrorするとエラーが発生したファイル名が分からないため、デバッグが困難である。
・onerrorはエラーが発生したファイル名を取得できないため、開発中に使用するとエラー箇所の特定が困難。
という現状だったようです。現状説明って大事ですね。
>>infoさん(NO.35468)、ANTARESさん(NO.35471)
なるほど、そんな手が。
早速書いてみました。
main.hsp
errsrcfile=__FILE__
onerror *l_err
; エラー発生
gosub *test : errsrcfile=__FILE__
;mes stfr("%d",)
;test1 : errsrcfile=__FILE__
stop
;エラー処理
*l_err
dialog "#Error " + wparam + " in line " + lparam + " (" + errsrcfile + ")", 1, "HSPエラー"
end
#include "test.hsp"
test.hsp
#module
#deffunc test1
errsrcfile@ = __FILE__
mes stfr("%d",) ;エラー発生
return
#global
*test
errsrcfile=__FILE__
mes stfr("%d",) ;エラー発生
return
ものすごく面倒くさいですね。orz
やっぱり開発中にはonerrorは使わず、最後に実装したほうがよさそう。