Como não foi possível responder ao questionamento feito pelos colegas estudantes no tópico sobre este assunto, estou criando este para informar uma possível solução.
A aplicação funciona para os dois casos (Id existente ou não), sem parar por causa da exceção que ocorre quando se digita um Id inexistente. na aplicação apresentada no treinamento.
Provavelmente, durante a gravação do treinamento, a execução do método gson.fromJson (json, infoJogo::class.java), não gerava exceção quando o Id informado (174 no treinamento) não era encontrado.
Portanto, para a aplicação funcionar sem dar exceção, a linha que declara e atribui valor para a variável meuInfoJogo tem que ter tratamento de exceção.
Fiz as seguintes alterações:
Arquivo Main.kt
// Código omitido
var meuInfoJogo:InfoJogo? = null
val resultadoIJ = runCatching {
meuInfoJogo = gson.fromJson(
json,
InfoJogo::class.java
)
}
resultadoIJ.onFailure{
println("Id informado inexistente. Tente outro id.")
System.exit(1)
}
var meuJogo:Jogo? = null
val resultado = runCatching {
meuJogo = Jogo(
meuInfoJogo!!.info.title,
meuInfoJogo!!.info.thumb
)
}
// Código omitido
Arquivo Jogo.kt
data class Jogo(
val titulo:String?,
val capa:String?
)
// Código omitido
Quem tiver mais experiência e puder melhorar o código acima ou passar uma correção melhor, por favor, deixe sugestão logo abaixo.
Espero ter ajudado, bons estudos!