Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不会引发异常_Java_Android_Exception - Fatal编程技术网

Java 不会引发异常

Java 不会引发异常,java,android,exception,Java,Android,Exception,我尝试在Android下开发。现在我尝试使用网络 我有“经理课” 它具有通过HTTP查询我自己的API服务器的方法。它使用NetTask对象,NetTask继承异步任务 public class NetTask extends AsyncTask<String, Void, Void> { HttpURLConnection connection; public NetTask(URL server) throws IOException{ Log.d("NetTask"

我尝试在Android下开发。现在我尝试使用网络

我有“经理课”

它具有通过HTTP查询我自己的API服务器的方法。它使用NetTask对象,NetTask继承异步任务

public class NetTask extends AsyncTask<String, Void, Void> {

HttpURLConnection connection;

public NetTask(URL server) throws IOException{
    Log.d("NetTask", "Create");
    connection = (HttpURLConnection)server.openConnection();
    connection.setReadTimeout(10000);
    connection.setConnectTimeout(15000);
    connection.setRequestMethod("GET");
    connection.setDoInput(true);
    connection.setDoOutput(true);
    Log.d("NetTask", "Connect");
    connection.connect();
    Log.d("NetTask", "Response");
    int response = connection.getResponseCode();
    Log.d("NetTask", "The response is: " + response);
}
公共类NetTask扩展异步任务{
httpurl连接;
公共NetTask(URL服务器)引发IOException{
Log.d(“净任务”、“创建”);
connection=(HttpURLConnection)server.openConnection();
connection.setReadTimeout(10000);
连接。设置连接超时(15000);
connection.setRequestMethod(“GET”);
connection.setDoInput(true);
connection.setDoOutput(真);
日志d(“NetTask”、“Connect”);
connection.connect();
日志d(“净任务”、“响应”);
int response=connection.getResponseCode();
Log.d(“NetTask”,“响应为:”+响应);
}
在我的情况下,我会得到下一个日志:

[makeQuery]

[净任务]

  • 创造
  • 连接
那么,为什么Log.d(“makeQuery”,“out”);行不可访问?

为什么
Log.d(“makeQuery”,“out”);
行不可访问

 try{
        NetTask a = new NetTask(server_url);
    }catch(IOException e){
        Log.d("makeQuery", "exception");
    }
原因是
NetTask
类引发了其他类型的异常

你将改为

    }catch(Exception e){
        Log.d("makeQuery", "exception");
    }

但是好的做法是捕获正确的异常,对异常处理进行注释,并查看日志猫中的异常类型。

在捕获后使用finally。但是应该记录该异常。可能它会引发另一个异常?是的,你说得对。它会引发其他异常,我使用Exception而不是IOException,它可以正常工作。谢谢网络操作,我建议使用,或。它可能不会抛出
IOException e
exception,所以请检查logcat中的异常
    }catch(Exception e){
        Log.d("makeQuery", "exception");
    }