我在野外出现了一个讨厌的虫子,我不能把手指放在它上面。有没有办法有一个Global Try / Catch块,或者一种方法来处理Monotouch中没有任何处理的异常。
我可以将UIApplication.Main(args)
包裹在try catch中吗?
捕获异常后,我想显示一个UIAlertView来显示结果。
任何帮助?
答案 0 :(得分:14)
你可以在try {} catch {}中包装UIApplication.Main(args)但是你不能在那时显示UIAlertView,因为我们已经解开整个堆栈,包括所有的UI。您可以做的是将异常记录到应用程序包的Documents文件夹中的崩溃文件中,并在下次启动时显示该异常文件或将其上载到Web服务。
Exceptioneer人正在研究MonoTouch支持,这可能值得研究。
答案 1 :(得分:1)
我使用未处理的异常处理程序,即AppDomain.CurrentDomain.UnhandledException
事件取得了成功。这似乎可以捕获许多(但不是全部)未处理的异常。似乎非托管代码中的崩溃可能导致应用程序失败而不调用此事件。
Geoff :除了捕获UIApplication.Main
之外的异常之外还会捕获此事件还是首选其中一种方法?