.net 无法捕获未知异常
我用OpenTK为自己编写了一个F#OpenGL包装器,我看到当我运行应用程序大约5分钟时,它会中止,抛出一个异常并将其打印到控制台 问题是VisualStudio中的控制台立即关闭,我无法看到消息输出 所以我想我可以尝试捕捉它并添加一个像这样的断点.net 无法捕获未知异常,.net,opengl,visual-studio-2012,f#,error-code,.net,Opengl,Visual Studio 2012,F#,Error Code,我用OpenTK为自己编写了一个F#OpenGL包装器,我看到当我运行应用程序大约5分钟时,它会中止,抛出一个异常并将其打印到控制台 问题是VisualStudio中的控制台立即关闭,我无法看到消息输出 所以我想我可以尝试捕捉它并添加一个像这样的断点 let game = new HelloCube.Game() try game.Run(60.,60.) with | :? System.Exception as e -> printfn "%s" e
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错误
有什么想法吗?在函数末尾添加(Console.ReadKey true)|>忽略。这将导致控制台窗口暂停并等待按键(任意按键),然后退出(请参阅)
另外,使用e.ToString()
而不仅仅是e.Message
。将为您提供完整的strack跟踪和其他相关信息,这些信息通常比异常消息更有用
退出代码对于每个应用程序都是唯一的。查找错误代码时,必须确保所查看的字典与应用程序和版本号匹配。如果在引发所有异常时将调试器设置为停止,则其行为如何?@RowlandShaw是的,我也尝试过,但它仍会中止并退出调试器。请尝试订阅AppDomain.CurrentDomain.UnhandledException
事件。感谢您的接受,但我很难相信我确实回答了您的问题。:)