2016-09-16 8 views
-7

コード: - tryブロックが実行されず、Asynctaskを拡張すると アプリケーションがクラッシュし、Asynctaskを拡張しないとcatch(Exception e)がエラーメッセージを表示します - "android.os.NetworkOnMainThradException"tryブロックが実行されない

試し{

  HttpURLConnection con = (HttpURLConnection) new URL("http://apis.hofficedemo1.ondemandcrm.co/AppRequestAPI").openConnection(); 
      con.setRequestMethod("POST"); 
      con.setDoInput(true); 
      con.setDoOutput(true); 
      con.connect(); 

      con.getOutputStream().write(("txt_username=" + txt_username).getBytes()); 
      con.getOutputStream().write(("txt_password=" + txt_password).getBytes()); 
      con.getOutputStream().write(("appMode=" + appMode).getBytes()); 
      con.getOutputStream().flush(); 

      //System.out.println(txt_username+" "+txt_password+" "+appMode); 

      InputStream is = con.getInputStream(); 
      byte[] b = new byte[1024]; 
      while (is.read(b) != -1) { 
       System.out.println(Arrays.toString(b)); 
      } 
      con.disconnect(); 
     } catch (IOException e) { 
      Log.d("IOException", "Some error"); 
     } 
     catch (Exception e){ 
      e.printStackTrace(); 
     } 
+0

は親切に私は、tryブロックでの問題が何であるかを知らないそこにあるものを除い見ると、ここ –

+0

それを投稿するcatchブロックで例外 書き込みe.printStackTrace()を言及します。私はいろいろな方法を試して、HttpURLConnectionに何らかの問題があることを理解しました –

+2

catchブロック内にe.printStackTrace()を追加して、tryブロックの問題を確認してください。 –

答えて

0

ランタイム例外を使用すると、順番にcatchブロックを置くときに、親の例外が配置されるように、IO例外の親であり、任意の例外がcatchedと親キャッチでのみ実行されます。実行時例外を実行します。 インスタンスの実行時例外を削除し、diffrenceを参照

+0

RuntimeExceptionを削除すると、アプリがクラッシュしてレポートが表示されます - 残念ながら、Appは停止しました " –

+0

最初のこと:"残念ながら、Appは停止しました "=例外。あなたのlogcatを見たのは、Network on Main Thread exception.Try asynctaskでネットワーク操作を行うことです。 – DevKRos

+0

OkはAsynctaskを拡張する必要があることを意味しますか? –

0

tryブロックの後に追加すると、例外が表示されます。

catch(Exception e){ 
e.printStackTrace(); 
} 
関連する問題