在我的代码中,如果出现异常,那么我想将该异常转换为错误,然后想要命中服务(在服务器上记录此错误)。有人有任何想法,怎么做? 还有一个问题,假设我有一个调用另一个方法(另一个类)的方法,该方法又调用任何其他类的另一个方法,即类A的方法A调用类B的方法B,它调用类的方法C C.那么,我应该在我的代码中放置try-catch块? (在方法A,方法B,方法C或所有三种方法中)
答案 0 :(得分: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
}
答案 1 :(得分:3)
有关异常处理的更多信息,请参阅Apple文档
现在提出下一个问题,即放置try catch块的位置。
类A的方法A调用类B的方法B,它调用类C的方法C,因此你可以看到在这个过程中线程是相同的,内存堆也是相同的。
因此在类A中应用try catch块。因此它将处理由其他类引起的异常,即B和C.(例外是全局的)
但是你希望单独处理不同类的异常,所以在这些类中应用try catch。