首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在单点接触中处理ObjC异常

在单点接触中处理ObjC异常
EN

Stack Overflow用户
提问于 2012-05-11 15:01:48
回答 1查看 415关注 0票数 5

有时我会从objective-c代码内部得到异常。在我的例子中,这些异常并不严重,我希望应用程序继续工作。问题是我如何处理这些异常?

例如,当我使用GeoCoder类时,我的应用程序会时不时地崩溃。我真的不关心地理编码器是否无法对位置进行地理编码,也不想让我的应用程序存活下来。在try-catch块中包含地理编码器调用并不能解决问题。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-11 18:15:40

MonoTouch在一定程度上尝试将ObjC异常转换为托管异常。这是通过为ObjC异常添加一个未处理的异常处理程序来完成的,并在其中引发一个托管异常。这在辅助线程上有效,但在主线程上不起作用,因为iOS在其主运行循环中有一个try-catch处理程序,如果有任何异常到达它,它将杀死你的应用程序(换句话说,异常被处理,所以它永远不会到达MonoTouch的未处理异常处理程序)。

最好的方法是从一开始就避免ObjC异常(苹果的文档指出,ObjC异常应该只在真正异常的情况下使用,因为它们有很多问题-例如,内存泄漏非常常见)。

显然不可能避免所有的ObjC异常,所以我们试图为那些仍然发生这种情况的情况找到解决办法。为您的特定用例完成此操作的最好方法是创建一个完整的测试用例,并在此处打开一个bug报告:http://bugzilla.xamarin.com,并附加测试用例。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10546884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档