Precisamos revisar um problema grave, na época que foi gravada a aula, os id que não tinham nenhum jogo retornavam pelo menos algum Json, que implicava numa determinada exceção que era tratável com o que foi dado em aula, apenas colocando apenas a instancia da variável meuJogo dentro do try ou runCatching, porém o erro agora dá bem antes disso, pois deve ter havido alguma atualização com a API do CheapShark, conforme a print abaixo do Postman, ele não está mais retornando código 200 na pesquisa, mas código 404, ou seja, o código quebra antes de chegar nessa parte do try. A solução foi colocar todo o tratamento da variável response em diante dentro do encapsulamento da tentativa.
 O problema se agravou na hora de refatorar o código, pois encapsulamos tudo dentro de uma classe, desde o HttpClient até o Gson, portanto a solução foi deixar essa instância toda - mesmo que fosse preciso apenas um pedaço - dentro do runCatching, abaixo o código que consegue tratar as exceções
O problema se agravou na hora de refatorar o código, pois encapsulamos tudo dentro de uma classe, desde o HttpClient até o Gson, portanto a solução foi deixar essa instância toda - mesmo que fosse preciso apenas um pedaço - dentro do runCatching, abaixo o código que consegue tratar as exceções
package br.com.alura.alugames.principal
import br.com.alura.alugames.modelo.*
import br.com.alura.alugames.servicos.ConsumoApi
import java.util.Scanner
fun main() {
    val leitura = Scanner(System.`in`)
    println("Digite o ID do jogo que deseja buscar:")
    val busca = leitura.nextLine()
    var meuJogo: Jogo? = null
    val resultado = runCatching {
        val buscaApi = ConsumoApi()
        val meuInfoJogo = buscaApi.buscaJogo(busca)
        meuJogo = Jogo(
            meuInfoJogo.info.title,
            meuInfoJogo.info.thumb)
    }
    resultado.onFailure {
        println("Erro ao buscar o jogo.")
    }
    resultado.onSuccess {
        println("Deseja inserir uma descrição personalizada? (s/n)")
        val resposta = leitura.nextLine()
        if (resposta.equals("s", true)) {
            println("Digite a descrição personalizada:")
            val descricaoPersonalizada = leitura.nextLine()
            meuJogo?.descricao = descricaoPersonalizada
            println("Descrição inserida: $descricaoPersonalizada")
        } else {
            meuJogo?.descricao = meuJogo?.titulo
        }
        println(meuJogo)
    }
    resultado.onSuccess {
        println("Busca finalizada com sucesso")
    }
}
 
            