未处理的格式错误的URL异常

时间:2013-06-09 06:50:08

标签: android compiler-errors

我创建了一个单独的方法来准备我的查询到Google地方:

public URL getPlacesUrl (String stringLocation){

        try{
        String url = Uri.parse(PLACES_REQUEST_URL).buildUpon().
                appendQueryParameter("key", API_KEY).
                appendQueryParameter("radius", Integer.toString(SEARCH_RADIUS)).
                appendQueryParameter("location", stringLocation).
                appendQueryParameter("sensor", "true").build().toString();

        URL parsedURL = new URL(url);
        return parsedURL;

        } catch (MalformedURLException e){
            Log.e(TAG , "Malformed URLException caught : " + e);
        }

    }

我收到错误“此方法必须返回结果类型的URL”。 我知道这是异常块的结果,它不返回URL,所以我试图返回一个空URL:

URL emptyURL = new URL ("");
return emptyURL;

但是我得到了“unhanded MalformedURLException”的编译错误

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你得到的是因为它不在你的try/catch区块内。但最好不要尝试解析空字符串。试试这个:

public URL getPlacesUrl (String stringLocation){
    URL parsedURL = null;
    try {
        String url = Uri.parse(PLACES_REQUEST_URL).buildUpon().
            appendQueryParameter("key", API_KEY).
            appendQueryParameter("radius", Integer.toString(SEARCH_RADIUS)).
            appendQueryParameter("location", stringLocation).
            appendQueryParameter("sensor", "true").build().toString();

        parsedURL = new URL(url);

    } catch (MalformedURLException e){
        Log.e(TAG , "Malformed URLException caught : " + e);
    }
    return parsedURL;
}

URL的构造函数抛出MalformedURLException。请参阅here