Aqui está a resolução do meu exercicio
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Oii, João. Tudo bem?
Ficou muito boa a sua resolução. É ótimo ver que você aplicou conceitos avançados de Java, como o uso da biblioteca java.net.http para consumir APIs e a criação de exceções personalizadas para tratar fluxos específicos da aplicação.
O tratamento que você deu para o erro 404 está correto. Quando trabalhamos com APIs externas, não podemos garantir que o dado solicitado sempre existirá, e lançar uma exceção própria como a userNotFoundException torna o código muito mais legível e fácil de dar manutenção.
RuntimeException é uma boa prática quando queremos que o erro seja tratado de forma específica, como você fez no bloco catch.Pra que seu código siga ainda mais os padrões da linguagem Java, deixo essa sugestão:
Nomenclatura de classes: Em Java, por convenção (PascalCase), o nome das classes e exceções deve começar com letra maiúscula. Então, httpRequest seria HttpRequestMain e userNotFoundException seria UserNotFoundException.
Parabéns pelo empenho no desafio. Consumir APIs é uma habilidade fundamental para quem trabalha com desenvolvimento backend.