【问题标题】:Exception even though code is surrounded with try/catch block即使代码被 try/catch 块包围,也会出现异常
【发布时间】:2014-08-28 12:53:36
【问题描述】:

我有一个获取 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 字典时会发生异常。

【问题讨论】:

  • 什么异常?你抓不到 exc_bad_access
  • 您的问题暗示异常是由于缺乏互联网连接,但您没有显示任何网络代码。您能否发布所有的相关代码?另外,您遇到了什么异常?
  • 嗯,我注意到当我关闭互联网时发生了异常,所以这就是我发现问题所在

标签: ios objective-c json exception-handling


【解决方案1】:

你的JSON数据_jsonData好像是在try~catch块之前获取的,那么问题的来源应该是出块了。然后你需要找出从互联网上获取数据的位置,并在那里安装try~catch块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多