我正在制作一个基于iphone的应用程序,并遇到捕获异常的问题。到目前为止,我从来没有与试捕捞的问题,但在这里......好:d捕获异常的问题
这里是一个没有捕获任何异常的代码:
- (void)updateView:(NSTimer*)t {
NSMutableDictionary *requestResult = [[[NSMutableDictionary alloc] init] autorelease];
@try {
requestResult = [self.eqParam getParameters];
}
@catch (MMConnectionFailed * e) {
[self performSelectorOnMainThread:@selector(noConnection) withObject:@"Could not reach server." waitUntilDone:YES];
}
}
下侧方法抛出异常良好在调试模式下,如果出现异常,但在涉及此方法时,不会捕获任何内容。
任何线索?
UPDATE:
最后,我发现问题出在哪里了,但我仍然不知道为什么异常不在下杆抛出。我改变了我的getParameters
方法的结尾。在这里:
- (NSMutableDictionary *)getParameters {
@try {
// be careful with NSMutableDictionary. Has to be used with setters to be correctly affected
lastResponse = [MMSoapMethods getEquipmentParametersWithUserString:user equipmentId:equipmentId];
}
@catch (MMConnectionFailed * e) {
@throw e;
}
@finally {
if (self.lastResponse) {
return lastResponse;
}
else
return nil;
}
}
我只是删除了@finally
周围的标签和异常被抛出。奇怪,不是吗?
你也可以把Objective-C标签放在问题中。有可能你要么捕捉错误类型的异常,要么在try-section中没有任何代码抛出异常。 – Nubsis 2010-07-16 09:09:42