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

Como tratar exception quando cai o servidor?

Alterando a dúvida, como eu posso tratar esse erro, que eu descobri que acontece quando cai o servidor? Dá erro de timeout connection e não adiciona nenhum journal.

Erros:

E/flutter (14220): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Connection timed out

This function has a nullable return type of 'Route?', but ends without returning a value. Try adding a return statement, or if no value is ever returned, try changing the return type to 'void'.

onGenerateRoute: (settings) { if (settings.name == 'add-journal') { final Journal journal = settings.arguments as Journal; return MaterialPageRoute( builder: (context) { return AddJournalScreen(journal: journal); }, ); } }, Código completo: https://github.com/giseletoledo/flutter_webapi_first_course/tree/main/lib

1 resposta
solução!

Oi Gisele, tudo bem?

Desculpe a demora em retornar.

Pra tratar esse erro de timeout de conexão, você pode utilizar um bloco try-catch para capturar a exceção e realizar alguma ação apropriada.

No seu código, você pode envolver a parte que faz a requisição ao servidor dentro de um bloco try. Em seguida, você pode adicionar um bloco catch para capturar a exceção e tratar o erro de forma adequada. Por exemplo, você pode exibir uma mensagem de erro na tela para o usuário informando que houve um problema de conexão com o servidor.

try {
  // Código que faz a requisição ao servidor
} catch (e) {
  // Tratamento da exceção
  print('Erro de conexão com o servidor: $e');
  // Exibir uma mensagem de erro na tela para o usuário
  showDialog(
    context: context,
    builder: (BuildContext context) {
      return AlertDialog(
        title: Text('Erro de conexão'),
        content: Text('Houve um problema ao se conectar com o servidor. Por favor, tente novamente mais tarde.'),
        actions: [
          TextButton(
            child: Text('OK'),
            onPressed: () {
              Navigator.of(context).pop();
            },
          ),
        ],
      );
    },
  );
}

Espero ter ajudado.

Um abraço.