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

我看到两个可能的原因:

  • 代码实际上确实抛出了一个异常,您可以在其他级别捕获并忽略它。
  • 库中的代码被破坏,因此它从堆栈中吃掉自己的返回地址,并在返回时使用您的方法的返回地址。
于 2012-05-24T13:00:46.213 回答