Como tratar erros de rede de forma elegante em um app Flutter
Uma requisição pode falhar sem conectividade, por timeout, por falha de DNS, por um 500 ou por JSON malformado, e cada caso precisa de uma resposta diferente. Veja como capturar as exceções certas, classificá-las, repetir com segurança e mostrar uma interface sobre a qual o usuário possa agir.