O que significa MalformedURLException e como resolver?

MalformedURLException ocorre em Java quando uma URL inválida é passada para a classe URL, causando erro na criação do objeto.

O que significa MalformedURLException e como resolver?

O erro MalformedURLException em Java ocorre quando uma URL inválida é fornecida ao tentar criar um objeto URL. Isso pode ser causado por erros na formatação da URL, esquemas ausentes ou caracteres ilegais.

Causas comuns do erro MalformedURLException

Falta do esquema da URL (http://, https://, etc.). Uso de caracteres inválidos dentro da URL. Tentativa de criar um objeto URL com um caminho incorreto.

Exemplo de erro e solução

Código que gera o erro:

import java.net.URL;
import java.net.MalformedURLException;

public class Exemplo {
    public static void main(String[] args) throws MalformedURLException {
        URL url = new URL("exemplo.com/arquivo.txt"); // Lançará MalformedURLException
    }
}

O erro ocorre porque o esquema http:// ou https:// está ausente.

Correção:

import java.net.URL;
import java.net.MalformedURLException;

public class Exemplo {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://exemplo.com/arquivo.txt");
            System.out.println("URL válida: " + url);
        } catch (MalformedURLException e) {
            System.out.println("Erro: URL malformada - " + e.getMessage());
        }
    }
}

A solução correta é garantir que a URL fornecida esteja completa e bem formatada.

Como evitar MalformedURLException?

Sempre inclua o esquema da URL (http:// ou https://). Verifique se a URL está corretamente formatada antes de passá-la para URL. Use um bloco try-catch para capturar e tratar a exceção corretamente.

public class ValidadorURL {
    public static boolean validarURL(String endereco) {
        try {
            new URL(endereco);
            return true;
        } catch (MalformedURLException e) {
            return false;
        }
    }

    public static void main(String[] args) {
        String url = "https://exemplo.com";
        if (validarURL(url)) {
            System.out.println("A URL é válida!");
        } else {
            System.out.println("A URL está malformada!");
        }
    }
}

Conclusão

O erro MalformedURLException pode ser evitado garantindo que a URL esteja completa e bem formatada, incluindo o esquema correto (http:// ou https://). Além disso, o uso de validação prévia e tratamento de exceções ajuda a evitar falhas inesperadas ao trabalhar com URLs em Java.

O erro MalformedURLException pode ocorrer ao lidar com conexões HTTP, APIs ou ao carregar recursos da web em Java. Ele acontece quando a URL informada não segue o padrão correto, resultando em falhas na comunicação. Para evitar esse problema, sempre valide as URLs antes de utilizá-las e implemente tratamento de exceções adequado.

Algumas aplicações:

  • Evitar erros ao acessar APIs externas
  • Garantir URLs bem formatadas ao carregar recursos web
  • Melhorar a confiabilidade de aplicações que fazem requisições HTTP
  • Prevenir falhas ao trabalhar com endereços de servidores

Dicas para quem está começando

  • Sempre inclua o esquema (http:// ou https://) na URL
  • Use try-catch para tratar possíveis exceções
  • Utilize métodos para validar URLs antes de usá-las
  • Evite caracteres especiais não suportados nas URLs

Contribuições de Rodrigo Farias

Compartilhe este tutorial: O que significa MalformedURLException e como resolver

Compartilhe este tutorial

Continue aprendendo:

Como corrigir IOException ao tentar ler um arquivo em Java

IOException ocorre em Java quando há problemas de leitura ou escrita de arquivos, como permissões insuficientes ou arquivo inexistente.

Tutorial anterior

Como corrigir BindException: Address already in use ao rodar um servidor Java

BindException ocorre quando a porta que o servidor Java tenta usar já está em uso por outro processo.

Próximo tutorial