所有在Xcode停止采伐误差,如何使@try @catch
我有一段代码运行在大量的记录,并在大约一半的情况下,失败(这是确定的,一些记录简单地没有所需的数据)我把这段代码放在一个@try @catch块中,使它运行顺利,我们试图做我们的事情,如果我们失败了,我们有一些默认的行为。
当它在@try块中失败时,它经常是无法识别的选择器错误,因为它位于@try块中,我发现这个错误,但它仍然每次都被记录下来,即使我没有从我的@ catch块。这非常烦人,因为它堵塞了我的日志记录。如果我想从@ try/@ catch中记录错误,我会在@catch右边处理这个问题吗?
我怎么能阻止在@try块错误记录那些在@catch块随后解决的XCode?
我使用的XCode 4.2
感谢
在Objective-C中,您通常应避免使用异常(@ try/@ catch [/ @ finally])进行流量控制。例外情况的成本非常高(与运行时间相比,如JVM或针对异常使用进行了优化的CLR)。而且,大多数Cocoa框架并不是特例安全的。因此,通过Cocoa框架代码抛出异常是很危险的,并且可能会导致您的应用程序出现奇怪,难以诊断和灾难性的情况(考虑可能的数据丢失)。 – 2012-02-23 09:28:58
代替使用异常,Cocoa代码使用NSError来指示应用程序内可恢复的错误条件。异常用于表示应用程序无法恢复的条件。 – 2012-02-23 09:29:03