Meu código tá igual ao mostrado na aula mas o resultado do tratamento das exceções tá diferente. Aparentemente tá retornando um erro de JSON pq ele espera um objeto mas retorna um array vazio. Não sei como consertar isso, e achei estranho que no código da professora não aconteceu isso :( Tem alguma solução??
Output do erro:
Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:397)
    at com.google.gson.Gson.fromJson(Gson.java:1227)
    at com.google.gson.Gson.fromJson(Gson.java:1137)
    at com.google.gson.Gson.fromJson(Gson.java:1047)
    at com.google.gson.Gson.fromJson(Gson.java:982)
    at br.com.alura.alugames.servicos.ConsumoApi.buscaJogo(ConsumoApi.kt:25)
    at br.com.alura.alugames.principal.MainKt.main(Main.kt:28)
    at br.com.alura.alugames.principal.MainKt.main(Main.kt)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:393)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:386)
    ... 7 more
Tratamento da exceção:
val buscaApi = ConsumoApi()
    val informacaoJogo = buscaApi.buscaJogo(busca)
    // inicializar variável meuJogo em escopo global
    var meuJogo: Jogo? = null
    val resultado = runCatching {
        // reatribuir valor de `meuJogo`
        meuJogo = Jogo(informacaoJogo.info.title, informacaoJogo.info.thumb)
    }
    // ESSE PRINT NÃO APARECE MESMO QUANDO FALHA ===============================================================
    resultado.onFailure {
         println("br.com.alura.alugames.modelo.Jogo inexistente. Tente outro ID.")
    }
    resultado.onSuccess {
        println("Deseja inserir descrição personalizada? [S/N] ")
        val opcao = leitura.nextLine()
        if (opcao.equals("s", true)) {
            println("Insira a descrição personalizada para o jogo: ")
            val descricaoPersonalizada = leitura.nextLine()
            meuJogo?.descricao = descricaoPersonalizada
        } else {
            meuJogo?.descricao = meuJogo?.titulo
        }
        println(meuJogo)
    }
    resultado.onSuccess { println("Busca finalizada com sucesso.") }
 
             
             
   
  