【问题标题】:Try-Catch Statement Trouble [closed]Try-Catch 语句麻烦[关闭]
【发布时间】:2012-10-28 17:16:26
【问题描述】:

所以我在下面的屏幕截图中找到了导致类型 IOExceptions 的这段代码。

http://southwestdesign.org.uk/Code.jpg

我被告知我需要将它包装在一个 try-catch 块中,用 try catch 包装每个单独的块可以消除错误,但在 Android 上强制关闭。有人可以指出我正确的方向吗?

@Override
    public void onStart() {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("http://1.php");
        HttpResponse response = client.execute(request);
        BufferedReader rd = new BufferedReader
        (new InputStreamReader(response.getEntity().getContent()));
        TextView textView = (TextView) findViewById(R.id.TextView1);
        String line = "";
        while ((line = rd.readLine()) != null) {
            textView.append(line);
        }
    }

谢谢大家。

【问题讨论】:

  • 你应该阅读一些关于 java 的基础知识。我建议用 java 思考
  • 你应该先用谷歌搜索一下。
  • 我同意,所以应该是你最后的手段

标签: android try-catch


【解决方案1】:

您似乎在 UI 线程上执行网络 IO,这是一个坏主意。因此,从 Android 2.3 开始,系统会“捕获”这一点并终止进程。

你应该把

 HttpResponse response = client.execute(request);

进入后台线程,例如通过使用AsyncTask

【讨论】:

    【解决方案2】:
    try {
    
       //do something here
       //call method
    
    }catch (IOException ioe){
    
    // do something else
    // log ioe
    
    }
    

    【讨论】:

      【解决方案3】:

      应该是这样的:

      @Override
          public void onStart() {
      
         try {
          HttpClient client = new DefaultHttpClient();
          HttpGet request = new HttpGet("http://1.php");
          HttpResponse response = client.execute(request);
          BufferedReader rd = new BufferedReader
          (new InputStreamReader(response.getEntity().getContent()));
          TextView textView = (TextView) findViewById(R.id.TextView1);
          String line = "";
          while ((line = rd.readLine()) != null) {
              textView.append(line);
          }
      
          }catch (IOException ex){
          }
      }
      

      最好使用AsyncTask 在单独的线程上完成此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-15
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        相关资源
        最近更新 更多