Исключенное исключение URL-адресов Java

Я пытаюсь сделать HTTP-запрос POST в приложении Android, которое я создаю, но независимо от того, какой url я использую для запроса, Eclipse продолжает поднимать Исправление ошибочных URL-адресов. Я пробовал строку кода из одного из учебных пособий по android:

URL url = new URL("https://wikipedia.org");

И даже это вызывает ошибку. Есть ли причина, по которой Eclipse продолжает поднимать эту ошибку для любого URL, который я пытаюсь создать?

Ответ 1

Он не поднимает исключение, он жалуется, что вы не обработали возможность, что он мог, хотя он выиграл ' t, потому что URL-адрес в этом случае не искажен. (Java-дизайнеры считали, что эта концепция, "проверенные исключения", была хорошей идеей, хотя на практике она не сработала.)

Чтобы закрыть его, добавьте throws MalformedURLException или его суперкласс throws IOException в объявление метода. Например:

public void myMethod() throws IOException {
    URL url = new URL("https://wikipedia.org/");
    ...
}

В качестве альтернативы, поймайте и восстановите раздражающее исключение в качестве непроверенного исключения:

public void myMethod() {
    try {
        URL url = new URL("https://wikipedia.org/");
        ...
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

В Java 8 добавлен класс UncheckedIOException для перестройки IOException, когда вы не можете иначе обрабатывать их. В более ранних версиях Java используйте RuntimeException.