Android的异常处理

问题描述:

Android的异常处理

  1. 低于上执行的代码的Android抛出IOException异常但不作为文Java项目执行。
  2. 另外我无法查看控制台中发生的异常,如果我使用e.printstacktrace。

    请尽快回复可能

public String convert(String from, String to,int amt){ 
    String result= null; 
    URL url = null; 
    HttpURLConnection urlConnection = null; 
    try { 
     url = new URL("http://www.exchangerate-api.com/"+from+"/"+to+"/"+amt+"?k=ZTKOy-28yPI-g2cQd"); 
     System.out.println("hai"); 
     urlConnection = (HttpURLConnection) url.openConnection(); 
     InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
     result = readStream(in); 
     System.out.println(result); 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return result; 
} 
public static String readStream(InputStream in) throws IOException { 
    StringBuilder sb = new StringBuilder(); 
    BufferedReader r = new BufferedReader(new InputStreamReader(in),1000); 
    for (String line = r.readLine(); line != null; line =r.readLine()){ 
     sb.append(line); 
    } 
    in.close(); 
    return sb.toString(); 
} 

08-17 12:30:31.356: WARN/System.err(946): java.net.UnknownHostException: www.exchangerate-api.com 
08-17 12:30:31.416: WARN/System.err(946):  at java.net.InetAddress.lookupHostByName(InetAddress.java:506) 
08-17 12:30:31.447: WARN/System.err(946):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294) 
08-17 12:30:31.468: WARN/System.err(946):  at java.net.InetAddress.getAllByName(InetAddress.java:256) 
08-17 12:30:31.496: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:68) 
08-17 12:30:31.517: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48) 
08-17 12:30:31.537: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:298) 
08-17 12:30:31.557: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89) 
08-17 12:30:31.586: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285) 
08-17 12:30:31.606: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267) 
08-17 12:30:31.626: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018) 
08-17 12:30:31.649: WARN/System.err(946):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:510) 
08-17 12:30:31.679: WARN/System.err(946):  at com.CurrencyConverterActivity.ConverterCurrency.convert(ConverterCurrency.java:110) 
08-17 12:30:31.697: WARN/System.err(946):  at com.CurrencyConverterActivity.ConverterCurrency.onClick(ConverterCurrency.java:67) 
08-17 12:30:31.716: WARN/System.err(946):  at android.view.View.performClick(View.java:2485) 
08-17 12:30:31.736: WARN/System.err(946):  at android.view.View$PerformClick.run(View.java:9080) 
08-17 12:30:31.746: WARN/System.err(946):  at android.os.Handler.handleCallback(Handler.java:587) 
08-17 12:30:31.766: WARN/System.err(946):  at android.os.Handler.dispatchMessage(Handler.java:92) 
08-17 12:30:31.786: WARN/System.err(946):  at android.os.Looper.loop(Looper.java:123) 
08-17 12:30:31.806: WARN/System.err(946):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
08-17 12:30:31.826: WARN/System.err(946):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-17 12:30:31.836: WARN/System.err(946):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-17 12:30:31.856: WARN/System.err(946):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-17 12:30:31.876: WARN/System.err(946):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-17 12:30:31.896: WARN/System.err(946):  at dalvik.system.NativeStart.main(Native Method) 

发生异常..

+0

查收在logcat中不进从DDMS控制台 – Pratik

+2

你提供了适当的权限吗? –

+0

您是否尝试过使用sysout(e.toString()); –

提供互联网PERMSSION

<uses-permission android:name="android.permission.INTERNET"></uses-permission>. In android-manifest 

如果您提供的已经然后发布日志猫

试一下下面的代码

HttpsURLConnection con = (HttpsURLConnection) new URL(newUrl).openConnection(); 
      con.setRequestMethod("POST"); 
      con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
      con.setRequestProperty("Content-Length", ""+Integer.toString(newUrl.getBytes().length)); 
      con.setRequestProperty("Content-Language", "en-US"); 
      con.setRequestProperty("Connection", "close"); 
      con.setUseCaches (false); 
      con.setDoOutput(true); 
      con.setDoInput(true); 
      InputStream in =con.getInputStream(); 
      InputStreamReader is=new InputStreamReader(in); 
      BufferedReader br=new BufferedReader(is); 
      String read=br.readLine(); 
      String line; 
       while((line=br.readLine())!=null){ 
       System.out.println(read); 
       read+=line; 
      } 
+0

nope它没有工作 – Britto

+0

hmm ..但你的代码看起来ok.Check在计算机浏览器中的这个URL是否正常工作?。有时候未知的主机exceptioncame,因为主机没有响应您的请求。所以尝试清理项目 – Sameer

+0

我检查了它与浏览器,也写这是一个简单的Java应用程序,它工作正常..但与Android它显示这个异常 – Britto