处理异常

时间:2011-10-25 10:21:16

标签: android exception-handling

我为Web服务编写了一个客户端。喜欢,请求 - >得到JSON回答。 但是,如果用户未获得授权,我会收到“错误”JSON回答和NullPointerException。此外,逻辑是从JSON答案为ListAdapter创建ListView。但如果JSON为null,那么app会崩溃 我想做这样的处理例外:
获取适配器

public mListAdapter getData(String api){
    mListAdapter result = null;
    MyData[][] mData = null;
    try{
        Gson gson = new Gson();
        Reader r = new InputStreamReader(getJSONData(api)); 
 // getJSONData, here i can get Exception and return null, but i read what control of logic via exception is bad practice
    }catch(Exception ex){
        ex.printStackTrace();
        Log.i("NullPointerException", "error");
        return result;
    }
    result = new mListAdapter(title, mData);    
    return result;
}


getJSONData

  public InputStream getJSONData(String url) throws NullPointerException{
    InputStream data = null;
    try {
        HttpGet httpget = new HttpGet(url);
        HttpResponse response = httpclient.execute(httpget);
        data = response.getEntity().getContent();
 //if (response.getEntity().getContent().getStatus()==404) return null, for example
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
    return data;
  }

并设置 Adapter ListView

if (adapter!=null) IWatchList.setAdapter(adapter); else IWatchList.setEmptyView(new TextView(this));

我不喜欢这种方法,因为:
- 我上来了。
- 前两种方法是通用的,因此每个适配器需要描述像第三种方法,这并不舒服。另一方面,如何定义适配器是空的或不是!只有检查它
请您的利弊,建议和提示如何更好和为什么。

0 个答案:

没有答案