Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Lidando com a Exceção

Assim como na aula anterior a API trocou o funcionamento dela e agora retorna um JSON vazio.

O que causa o exeção JsonSyntaxException,

Então segue aqui a minha sugestão de código para tratar essa exception:

 val gson = Gson()
    var meuInfoJogo: InfoJogo = InfoJogo(InfoApiShark("", ""))
    val resultadoMeuInfoJogo = runCatching {
        meuInfoJogo = gson.fromJson(json, InfoJogo::class.java)
    }

    resultadoMeuInfoJogo.onFailure {
        println("Retorno Inválido. Tente outro id.")
    }

    resultadoMeuInfoJogo.onSuccess {
        var meuJogo: Jogo
        val resultado = runCatching {
            meuJogo = Jogo(meuInfoJogo.info.title, meuInfoJogo.info.thumb)

            println(meuJogo)
        }

        resultado.onFailure {
            println("Jogo inexistente. Tente outro id.")
        }

        resultado.onSuccess {
            println("Deseja inserir uma descrição personalizada? S/N")
            val opcao = leitura.nextLine()
            if (opcao.equals("s",true)) {
                println("Insira a descrição personalizada para o jogo:")
                val descricao = leitura.nextLine()
                println("sua descrição: $descricao")
            } else {
                println("sem descrição")
            }
        }
    }

A solução consiste em utilizar dois runCatchings onde o segundo, que seria o equivalente ao do vídeo depende do sucesso do primeiro runCatching.

1 resposta
solução!

Olá Gustavo, como vai?

Obrigada por compartilhar aqui com a comunidade sua sugestão. Isso pode ajudar demais outros estudantes que estejam fazendo o mesmo curso além de ajudar na construção de soluções diferentes.

Bons estudos por aí =)