我自己写了一个带OpenTK的F#OpenGL包装器,我看到当我运行我的应用程序大约5分钟时它将中止,抛出异常并将其打印到控制台。
问题是visual studio中的控制台立即关闭,我无法看到消息输出。
所以我想我可以尝试抓住它并添加这样的断点。
let game = new HelloCube.Game()
try
game.Run(60.,60.)
with
| :? System.Exception as e ->
printfn "%s" e.Message
printfn "end" //breakpoint
但它没有抓住异常。
所以我查看了错误代码
The program '[4236] HelloCube.exe: Managed (v4.0.30319)' has exited with code 9008 (0x2330).
我发现
DNS RR set that ought to exist, does not exist.
这可能不是正确的错误代码。 DNS错误?
我能尝试什么想法?
答案 0 :(得分:1)
将( Console.ReadKey true ) |> ignore
添加到您的函数末尾。这将导致控制台窗口暂停并等待按键(任何按键),然后退出(参见MSDN)。
另外,请使用e.ToString()
而不是e.Message
。 Exception.ToString()将为您提供完整的strack跟踪和其他相关信息,这些信息通常很多更有用,只有异常消息。
退出代码对每个应用程序都是唯一的。查找错误代码时,必须确保您正在查找的字典与应用程序和版本号匹配。