导致MalformedURLException(Android)

时间:2013-12-23 17:14:13

标签: java android exception malformedurlexception

我试图在我的代码中引入一个MalformedURLException来测试我对它的处理,但无论我尝试什么,我似乎无法导致它。 (我传入了一个完全无意义的非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实例化跳转到return语句。

2 个答案:

答案 0 :(得分:2)

怎么样

throw new MalformedURLException("Testing!");

答案 1 :(得分:2)

传递小于-1的端口号

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