felangel/bloc

refactor: stop losing the original stack trace from dart 2.16

Geschlossen

#2.995 geöffnet am 21.11.2021

 (5 Kommentare) (1 Reaktion) (1 zugewiesene Person)Dart (3.419 Forks)batch import
examplegood first issuerefactor

Repository-Metriken

Stars
 (12.452 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 2T 22h) (5 gemergte PRs in 30 T)

Beschreibung

You must stop losing the original source stack trace like this (just for example):

https://github.com/felangel/bloc/blob/a3a9b2dba6546480d4ea26931ed024f274b9a7a9/examples/flutter_firebase_login/packages/authentication_repository/lib/src/authentication_repository.dart#L206-L210

it's big trouble, to read exceptions without source stacktraces, especially in crashlytics or sentry like logs

from dart 2.16 you must use Error.throwWithStackTrace like this:

//@dart=2.16

...

} on FirebaseAuthException catch (e, stackTrace) {
  Error.throwWithStackTrace(
    SignUpWithEmailAndPasswordFailure.fromCode(e.code),
    stackTrace,
  );
}

also, instead:

} catch (_) {

you must write:

} on Object {

or:

} on Object catch (error, stackTrace) {

Contributor Guide