Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.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 导致畸形的DurLexException(Android)_Java_Android_Exception_Malformedurlexception - Fatal编程技术网

Java 导致畸形的DurLexException(Android)

Java 导致畸形的DurLexException(Android),java,android,exception,malformedurlexception,Java,Android,Exception,Malformedurlexception,我试图在我的代码中引入一个畸形的DurLexception来测试我对它的处理,但是无论我尝试什么,我似乎都无法引起它。(我传入了一个完全没有意义的非url字符串,但它仍然没有出现,我只得到一个空响应) 我知道《android开发者参考》描述了: 当程序试图从错误的规范创建URL时,会引发此异常 我想知道如何创建/提供这样一个不正确的规范 这就是我试图执行的代码 try { HttpData data = request.composeHttpData();

我试图在我的代码中引入一个畸形的DurLexception来测试我对它的处理,但是无论我尝试什么,我似乎都无法引起它。(我传入了一个完全没有意义的非url字符串,但它仍然没有出现,我只得到一个空响应)

我知道《android开发者参考》描述了:

当程序试图从错误的规范创建URL时,会引发此异常

我想知道如何创建/提供这样一个不正确的规范

这就是我试图执行的代码

     try {
        HttpData data = request.composeHttpData();
        //URL url = new URL(composeUrl(data));
        URL url2 = new URL("mydomain:-2/invalidPort");
        HttpsURLConnection conn = (HttpsURLConnection) getHttpClient().open(url2);
        conn.setRequestMethod(data.getMethod());

        //authentication
        addAuthentication(conn);

        //post body
        if (data.getMethod() == POST) {
            conn.setDoOutput(true);
            data.writePostBody(conn.getOutputStream());
            conn.getOutputStream().close();
        }

        if(conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            response.consumeResponse(conn.getInputStream());
        }

        response.setResponseHttpCode(conn.getResponseCode());

    } catch (MalformedURLException e) {
        e.printStackTrace();
        throw new Error("Malformed URL encountered");
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        return response;
    }
当我尝试调试代码时,它似乎从Url实例化跳转到返回语句

怎么样

throw new MalformedURLException("Testing!");
怎么样

throw new MalformedURLException("Testing!");

传递小于-1的端口号

    URL url = new URL("http://mydomain:-2/invalidPort");

传递小于-1的端口号

    URL url = new URL("http://mydomain:-2/invalidPort");

在我的nexus 7 kitkat 4.4.2上,我获得了java.net.MalformedURLException:java.lang.IllegalArgumentException:port<0:-2我进一步扩展了示例。我想在这一过程中一定有更深层次的错误?请发布stacktrace,我也在genymotion模拟器上进行了尝试,错误的DorLexception如预期的那样出现了。我想我的问题在于finally语句的使用。即使我在异常上抛出错误,应用程序也不会崩溃(正如我所希望的那样),但仍会继续。请尝试将return语句作为Try块的最后一行移动,并删除finally块。考虑到最后应该只包含清理代码我的Nexus 7 KITKAT4.4.2,我获得Java.NET.MalFrimeUrLeExp:JavaLang.ILLCALL AgurMutExtExp:PoT < 0:-2i进一步扩展了示例。我想在这一过程中一定有更深层次的错误?请发布stacktrace,我也在genymotion模拟器上进行了尝试,错误的DorLexception如预期的那样出现了。我想我的问题在于finally语句的使用。即使我在异常上抛出错误,应用程序也不会崩溃(正如我所希望的那样),但仍会继续。请尝试将return语句作为Try块的最后一行移动,并删除finally块。考虑最后应该只包含清理CODDEME的http://从URL删除http://从URL。