It is not raising the exception, it's complaining that you haven't handled the possibility that it might, even though it won't, because the URL in this case is not malformed. (Java's designers thought this concept, "checked exceptions", was a good idea, although in practice it hasn't worked well.)
To shut it up, add throws MalformedURLException
, or its superclass throws IOException
, to the method declaration. For example:
public void myMethod() throws IOException {
URL url = new URL("https://wikipedia.org/");
...
}
Alternatively, catch and rethrow the annoying exception as an unchecked exception:
public void myMethod() {
try {
URL url = new URL("https://wikipedia.org/");
...
} catch (IOException e) {
throw new RuntimeException(e);
}
}
Java 8 added the UncheckedIOException
class for rethrowing IOException
s when you cannot otherwise handle them. In earlier Java versions, use RuntimeException
.