Throwing an error/exception:
You can use either return or throw to throw an error or an exception.
-
Using
return:Future<void> foo() async { if (someCondition) { return Future.error('FooError'); } } -
Using
throw:Future<void> bar() async { if (someCondition) { throw Exception('BarException'); } }
Catching the error/exception:
You can use either catchError or try-catch block to catch the error or the exception.
-
Using
catchError:foo().catchError(print); -
Using
try-catch:try { await bar(); } catch (e) { print(e); }