2012-10-28 6 views
-4

그래서 아래의 스크린 샷에 IOExceptions 유형을 유발하는 코드 섹션이 있습니다. 내가 시도 캐치 각 invididual 블록을 포장, 시도-catch 블록을 포장 할 필요가 있다고 말했다있어 Try-Catch Statement Trouble

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

는 오류를 제거하지만, 힘은 안드로이드에 닫습니다. 누군가가 올바른 방향으로 나를 가리켜 주시겠습니까?

@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); 
     } 
    } 

감사합니다.

+3

자바에 대한 기본적인 내용을 읽어야합니다. 나는 자바에서 생각하는 것이 좋습니다 – Blackbelt

+0

당신은 다른 것보다 먼저 google해야합니다. – Siddharth

+0

동의합니다. 그래서 최후의 수단이되어야합니다. – chrislhardin

답변

0
try { 

    //do something here 
    //call method 

}catch (IOException ioe){ 

// do something else 
// log ioe 

} 
0

가이 같은해야한다 :

@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을 사용하여 더.

4

UI 스레드에서 네트워크 IO를하는 것처럼 보입니다. 이는 좋지 않은 생각입니다. 그래서 안드로이드 2.3 이후, 시스템은 이것을 "잡아서"프로세스를 죽입니다.

당신은, 예를 들어 백그라운드 스레드로

HttpResponse response = client.execute(request); 

을 넣어한다 AsyncTask을 사용하여