1
resposta

[Dúvida] [Faça como eu fiz] Diferença de código na classe "ConverteDados"

Durante a realização do "Faça como eu fiz: consumindo uma API, criando classes e interfaces, e implementando métodos" na classe "ConverteDados" há o seguinte código na resolução:

package br.com.alura.screenmatch.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ConverteDados implements IConverteDados {
    private ObjectMapper mapper = new ObjectMapper();

    @Override
    public <T> T obterDados(String json, Class<T> classe) {
        try {
            return mapper.readValue(json, classe);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
    }
}

Porém ao tentar implementá-lo o Intellij apresenta um erro no "JsonProcessingException".
Excluir a exceção e não apresentou mais nenhum erro. Ao rodar o código ele funcionou corretamente, mostrando a saida esperada.

Meu código:

package br.com.peu.screenmatch.service;

import tools.jackson.databind.ObjectMapper;

public class ConverteDados implements IConverteDados {
    private ObjectMapper mapper = new ObjectMapper();

    @Override
    public <T> T obterDados(String json, Class<T> classe) {
        return mapper.readValue(json, classe);
    }
}

Tem alguma ideia do motivo disso? Corro algum perigo deixando meu código assim?

1 resposta

Olá Pedro! Como vai?

A exceção JsonProcessingException é uma exceção verificada (checked exception) em Java, o que significa que o compilador espera que você a trate de alguma forma, seja usando um bloco try-catch ou declarando que seu método lança essa exceção.

No seu código, ao remover o bloco try-catch, você está assumindo que o método readValue não lançará uma exceção que precisa ser tratada. Isso pode funcionar, especialmente se você estiver usando uma versão do Jackson que não requer tratamento explícito dessa exceção, ou se estiver usando uma configuração de projeto que não exige o tratamento de exceções verificadas.

No entanto, é importante estar ciente de que, ao não tratar explicitamente a exceção, você pode estar perdendo a oportunidade de lidar com erros de parsing de JSON de forma mais controlada. Isso pode ser importante para identificar problemas específicos com os dados JSON que você está processando.

Se o seu código está funcionando como esperado, pode ser que você não esteja enfrentando problemas no momento. Contudo, é sempre uma boa prática tratar exceções verificadas para garantir que você possa lidar com erros de forma apropriada e fornecer feedback útil em caso de falhas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.