Função runZonedGuarded no Flutter
Olá, leitores, hoje vamos falar sobre a função runZonedGuarded no Flutter.
runZonedGuarded é uma função usada para implementar um bloco de código em uma zona especial. Essa função o ajuda a lidar com exceções não capturadas que possam ocorrer durante a execução desse código.
Temos 2 métodos no dart.
- runZoned
- runZonedGuarded
A diferença entre runZoned e runZonedGuarded está no tratamento de erros. runZoned captura erros e exceções, mas não impede o travamento do aplicativo. Por outro lado, o runZonedGuarded captura os erros, permite que você os trate de forma elegante e, em seguida, evita o travamento do aplicativo.
Vamos seguir o passo a passo da implementação.
Então, agora vamos tratar a exceção e, depois disso, enviaremos essa exceção para o firebase. Para isso, adicionaremos o pacote firebase_crashlytics ao nosso projeto.
dependencies: flutter: sdk: flutter firebase_core: ^2.24.2 firebase_crashlytics: ^3.4.9
envolveremos todo o seu aplicativo em uma função que captura erros. Nossa função receberá dois argumentos: uma função de retorno de chamada e uma função de tratamento de erros.
void main() { runZonedGuarded(() { WidgetsFlutterBinding.ensureInitialized(); FlutterError.onError = (FlutterErrorDetails details) { catchUnhandledExceptions(details.exception, details.stack); }; runApp(const MainApp()); }, catchUnhandledExceptions); } void catchUnhandledExceptions(Object error, StackTrace? stack) { FirebaseCrashlytics.instance.recordError(error, stack, fatal: true); debugPrintStack(stackTrace: stack, label: error.toString()); }
Se ocorrer algum erro não tratado durante a execução do aplicativo, ele será capturado pelo método catchUnhandledExceptions.
Conclusão
O tratamento de erros é uma parte essencial do desenvolvimento de aplicativos no Flutter. A função runZonedGuarded
captura e trata os erros não capturados, evitando que o aplicativo falhe. Isso melhora a estabilidade do aplicativo.