如何解决如何处理异常
|Nsstring *stringURL=[[Nsstring alloc] init];
stringURL=[stringURL stringByAppendingFormat:kSearchBarURL,text.text];
Nsstring *url = [Nsstring stringWithString:stringURL];
NSData *data1 = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
Nsstring *responseids = [[Nsstring alloc] initWithData:data1 encoding:nil];
responseids = [responseids stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@\"\\n\\r\\t\"]];
SBJsonParser *parser=[SBJsonParser new];
NSData *data = [parser objectWithString:responseids error:nil];
NSMutableDictionary *searchURL = (NSMutableDictionary*)data;
我对此进行了编码,但没有为我的代码处理异常。
做json并调用服务网址并加载数据。
当我的服务太低或找不到服务时,应用程序崩溃。
如何在这里为我的代码处理异常。
我是否使用@try @catch。
要么
NSURLConnection用于错误处理。
请帮帮我。
提前致谢。
解决方法
每当API使用NSError时,都应使用此方法,而不是将其包装在try ... catch块中,因为NSError正是为此而设计的。我通常为那些我确实无法预料可能出问题的地方预留“ 1”。如果混合使用了NSError,那么您就知道有可能应该妥善处理问题。
一般来说,您的代码中包含一些奇怪的东西。您“ 2”一个空的NSString,然后通过附加格式来创建新字符串。不知道为什么不只使用
[NSString stringWithFormat]
。有了字符串后,就可以创建没有NSString *url
位的URL。
您还正在使用对我认为是远程服务器的同步调用。如果/当服务器不可用时,这有可能使您的应用程序陷入瘫痪。您也不会告诉NSString从NSData读取字符串时,您希望字符串采用哪种编码。根据您的服务器端,更好的方法是使用NSString的stringWithContentsOfURL:usedEncoding:error:方法。我建议您使用各种NSURLConnection回调。查看有关使用NSURLConnection的URL加载系统编程指南。NSURLConnection委托方法是您要实现以提供异步处理的方法。
为了进行修整,您可能会对NSCharacterSet上的+ whitespaceAndNewlineCharacterSet方法感兴趣。
最后,对于JSON解析,您可能会对SBJSON代码添加到NSString的类别感兴趣,特别是-JSONValue,当由SBJSON解析为JSON时,它将为您提供NSString的字典或数组表示形式(适当时)。
高温超导
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。