Monotouch全局异常处理

时间:2011-01-28 16:17:47

标签: c# ios exception-handling xamarin.ios

我在野外出现了一个讨厌的虫子,我不能把手指放在它上面。有没有办法有一个Global Try / Catch块,或者一种方法来处理Monotouch中没有任何处理的异常。

我可以将UIApplication.Main(args)包裹在try catch中吗?

捕获异常后,我想显示一个UIAlertView来显示结果。

任何帮助?

2 个答案:

答案 0 :(得分:14)

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

Exceptioneer人正在研究MonoTouch支持,这可能值得研究。

答案 1 :(得分:1)

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

Geoff :除了捕获UIApplication.Main之外的异常之外还会捕获此事件还是首选其中一种方法?