Aqui está a resolução do meu exercicio
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.