web-dev-qa-db-fra.com

Java Exception d'URL mal formée

J'essaie de faire une requête http POST dans une application Android que je construis, mais quelle que soit l'URL que j'utilise pour la demande, Eclipse conserve déclencher une exception d'URL incorrecte. J'ai essayé une ligne de code à partir d'un des didacticiels Android:

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

Et même cela déclenche l'erreur. Y a-t-il une raison pour laquelle Eclipse continue de générer cette erreur pour toute URL que j'essaie de créer?

22
user3772689

Ce n'est pas lever l'exception, c'est se plaindre que vous n'avez pas géré la possibilité que cela puisse , même s'il a gagné 't, parce que l'URL dans ce cas n'est pas mal formée. (Les concepteurs de Java ont pensé que ce concept, "vérifié les exceptions", était une bonne idée, bien qu'en pratique cela n'a pas bien fonctionné. )

Pour le fermer, ajoutez throws MalformedURLException, ou sa superclasse throws IOException, à la déclaration de méthode. Par exemple:

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

Vous pouvez également intercepter et renvoyer l'exception gênante en tant qu'exception non vérifiée:

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

Java 8 a ajouté la classe UncheckedIOException pour relancer IOExceptions lorsque vous ne pouvez pas les gérer autrement. Dans les versions antérieures de Java, utilisez RuntimeException.

59
Boann