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.