一些代码段随机退出当前方法

时间:2012-05-24 12:55:43

标签: vb.net clr

这是一个非常奇怪的错误,我有时会使用某些库(不管它是否包含在框架中)。

例如,这次我用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代码是错的,但这不是我的观点......)

1 个答案:

答案 0 :(得分:1)

我认为有两个可能的原因:

  • 代码实际上实际上抛出异常,你抓住它并在其他层面忽略它。
  • 库中的代码已损坏,因此它会从堆栈中删除自己的返回地址,并在返回时使用方法的返回地址。