Я разрабатываю приложение, в котором я называю веб-службы на iphone. Я хочу осуществить Попробуйте ....... Поймать в этом коде для ловли Интернет и GPRS-код подключения error.The как следовать,Как найти внутреннюю сетевую ошибку, используя Try .......... Поймать в iphone?
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:mainURL5]];
[request setHTTPMethod:@"POST"];
NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[[NSError alloc] init] autorelease];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
result5 = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
Я использую попробовать ...... поймать, но не работает этот код следующим образом:
@try
{
//prepar request
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:mainURL5]];
[request setHTTPMethod:@"POST"];
NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[[NSError alloc] init] autorelease];
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
result5 = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
}
@catch(NSException * e)
{
[clsMessageBox ShowMessageOK:@"some text" :[e reason]];
}
Вы не должны полагаться на проверку ошибок. Это может быть не ноль, даже если произошла ошибка. Метод возвращает nil при ошибке, поэтому, если метод возвращает nil, только тогда вы должны посмотреть, что находится в переменной ошибки. –
Это неверно, метод также возвращает 'nil' в других ситуациях (например, HTTP' 204 No Content'). 'error' будет установлен для сбоев ОС/сети. Приложения также должны проверять «returnResponse», чтобы узнать, какой тип ответа сервер отправил, если это имеет значение. – rpetrich
Собственно, это правда. Состояние ошибки не определено, если функция завершается успешно, и ее можно установить (на самом деле, для CoreData она часто/установлена / установлена). Этот метод НИКОГДА не возвращает ниль на успех. Когда вы получаете ответ 204, метод возвращает объект NSData с длиной 0, а не нулем. –