0

我试图在我的代码中引入 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 语句。

4

2 回答 2

2

传递小于 -1 的端口号

    URL url = new URL("http://mydomain:-2/invalidPort");
于 2013-12-23T17:27:59.433 回答
2

怎么样

throw new MalformedURLException("Testing!");
于 2013-12-23T17:15:43.293 回答