0

これは、いくつかのライブラリで時々発生する本当に奇妙なエラーです (フレームワークに含まれているかどうかに関係なく)。

たとえば、今回はこれを行うLuaInterfaceで取得しました:

//' s = string to existing file path
lua.DoFile(s)
Dim func = lua.GetFunction("ohai_regex()")
Dim ret = func.Call() 'doesnt do anything
//' file s contains function ohai()
MessageBox.Show("Geronimo!") 'NEVER gets reached

func.Call() は、何かが発生した場合に例外を返すか、エラーを発生させるために何かを行うことを期待していますが、ここでは、すぐに返されるメソッドを殺すだけです! ここでも同じことがループ内にあり、これ以上反復されません。この関数の実行を停止し、プログラムの実行を続行します。

これは私に数回起こっています。それ以外は覚えてないけど。

(ここで使用している LuaInterface コードが間違っている可能性がありますが、それは私の主張ではありません...)

4

1 に答える 1

1

考えられる理由は 2 つあります。

  • コード実際に例外をスローし、それをキャッチして他のレベルで無視します。
  • ライブラリ内のコードが壊れているため、スタックから独自の戻りアドレスを消費し、メソッドが戻るときにその戻りアドレスを使用します。
于 2012-05-24T13:00:46.213 に答える