2011-11-21 105 views
1

在我的代码中,如果出现异常,那么我想将该异常转换为错误,然后想要命中服务(在服务器上记录此错误)。有没有人有任何想法,如何做到这一点? 还有一个问题,假设我有一个调用另一个方法(另一个类)的方法,该方法又调用任何其他类的另一个方法,即A类的方法A调用B类的方法B,该方法调用方法C C类。那么,我应该在哪里将try-catch块放在我的代码中? (方法A,方法B,方法C或所有三种方法)错误日志记录(在try-catch的catch块中)iPhone

回答

3

有关异常的更多信息处理,你可以参考苹果文档

http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocExceptionHandling.html

现在你的下一个问题,即在哪里放置try catch块。

A类的方法A调用B类的方法B,它调用C类的方法C,因此你可以看到在这个过程中线程将是相同的,并且内存栈也是相同的。

因此适用于A类的try catch块,因此它会处理由其他类引发的异常,即B和C.(作为例外,是全球性的)

但你想要的不同的异常类应该单独处理,因此在这些类中应用try catch。

3

您可以将@try/@catch块放在任何位置。我认为最好的编程习惯是把它放在你认为可能会抛出异常的地方(因为你可以在那个地方放置一个非常详细的错误/ NSLog线)。

但不管怎么说......你想要做的是:

@try { 
    // do your potentially exception-throwing code here 
} 
@catch(NSException * e) 
{ 
    NSLog(@"exception thrown in method C; %@ %@", [e name], [e reason]); 
    // and you could even throw in [e.userInfo description], too 
}