我正在从服务器加载数据,但有时服务器未连接(错误)。
我想使用 Try/Catch 或其他东西来避免错误应用
1: try/cactch 加载数据 2:尝试/捕捉图像
我不知道怎么用 我写的代码是:
@try
{
dispatch_async(htvque, ^{
NSData* data = [NSData dataWithContentsOfURL: [NSURL URLWithString:listChannel]];
NSError* error;
jsonTable = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (error) {
NSLog(@"%@", error);
}
else
{
NSMutableArray *arrImage = [jsonTable objectForKey:@"ListImage"];
for (int i =0; i<arrImage.count; i++) {
UIImage * result;
UIImageView *imgView = [[UIImageView alloc] init];
imgView.frame = CGRectMake(0, 30 * i , 20, 20);
imgView.image = result;
@try
{
NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString: [arrImage objectAtIndex:i]]];
result = [UIImage imageWithData:data];
[self.view addSubview:imgView];
}
@catch
{}
@finally
{}
}
}
});
}
@catch(NSException * exp)
{
NSLOG(@"abc");
}
@finnaly
{
}
最佳答案
不要为此目的在您的 ObjC 程序中使用异常。
在 ObjC 中,仅在以下情况下使用异常:
- 您不打算康复
- 当您不打算恢复时
-- if 一个异常(exception)在这里甚至是合适的(我只是不使用它们,但这对很多人来说有点太“核心”了)。
无论如何 - ObjC 中的异常表示程序员错误并且在逻辑上是您不能期望从中恢复的东西(与其他语言不同)。弄清楚你的错误是什么而不是“尝试并吞下”错误处理。
我建议的补救措施是创建一个新问题,其中显示适当的代码,并详细说明异常、如何重现它等。
注意:实际上有一些古怪的 Cocoa API 会在不太异常(exception)的情况下抛出异常,而当它们本应使用另一种方法来处理错误时,例如 NSError
。您将在开发中看到的绝大多数 Cocoa 异常都是您应该并且可以纠正的问题(范围错误、不响应选择器、引用计数)。
关于objective-c - IOS- 使用 Try/Catch 加载 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144843/