C# Monotouch全局异常处理

C# Monotouch全局异常处理,c#,ios,exception-handling,xamarin.ios,C#,Ios,Exception Handling,Xamarin.ios,我在野外发现了一只讨厌的虫子,我无法用手指触摸它。是否有一种方法可以拥有全局Try/Catch块,或者有一种方法可以处理Monotouch中未受影响的任何异常 我可以将UIApplication.Main(args)包装成一个try-catch吗 捕获异常后,我想显示UIAlertView以显示结果 有什么帮助吗?您可以在try{}catch{}中包装UIApplication.Main(args),但此时您将无法显示UIAlertView,因为我们已经解开了包括所有UI在内的整个堆栈。您可以将

我在野外发现了一只讨厌的虫子,我无法用手指触摸它。是否有一种方法可以拥有全局Try/Catch块,或者有一种方法可以处理Monotouch中未受影响的任何异常

我可以将
UIApplication.Main(args)
包装成一个try-catch吗

捕获异常后,我想显示UIAlertView以显示结果


有什么帮助吗?

您可以在try{}catch{}中包装UIApplication.Main(args),但此时您将无法显示UIAlertView,因为我们已经解开了包括所有UI在内的整个堆栈。您可以将异常记录到应用程序包的Documents文件夹中的崩溃文件中,并在下次启动时显示该异常,或者将其上载到web服务


伙计们也在研究MonoTouch支持,这可能值得研究。

我成功地使用了未处理的异常处理程序,即AppDomain.CurrentDomain.UnhandledException事件。这似乎捕获了许多(但不是全部)未处理的异常。似乎非托管代码中的崩溃会导致应用程序在不调用此事件的情况下失败


Geoff:除了捕获来自
UIApplication.Main的异常之外,捕获此事件是否有意义,或者是首选其中一种方法?

不确定这是否是单触式的,但在windows上使用它并不重要,但是本机代码中的崩溃会让您崩溃。该应用程序基本上在这一点上是腐败的,我们没有什么可以做的处理优雅。monotouch社区的一名成员尝试在发布版本中使用dup2(3)将stdout和stderr重定向到一个文件,这样他就可以在下一次运行时将crashlog上传给自己,这是可以做到的。