即使代码被try / catch块包围,也会出现异常

时间:2014-07-07 22:15:02

标签: ios objective-c json exception-handling

我有一个用于获取json的代码。当我的设备连接到互联网时,它工作得很好,但如果没有互联网连接,它会崩溃。 我已经用try / catch块包围了那段特定的代码,但它似乎没有做到这一点。

当然,我可以做一个解决方法,首先检查是否有互联网连接,然后调用我需要的方法,但我想了解这一点。

为什么在这种情况下不会触发@catch,以及在这种情况下如何处理此异常?

以下是代码:

@try {
NSError *error;

NSMutableDictionary* json = [NSJSONSerialization
                             JSONObjectWithData:_jsonData
                             options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves
                             error:&error];
...
@catch (NSException *exception) {

        [_indicator stopAnimating];
        _indicator.hidden = YES;
        [self popUp];

}

因此,尝试填充json字典时会发生异常。

1 个答案:

答案 0 :(得分:0)

您的JSON数据_jsonData似乎是在try~catch阻止之前获得的,然后问题的来源应该在阻止之外。然后,您需要找出从互联网获取数据的位置,并在那里安装try~catch块。