Index: lib/core/future.dart |
diff --git a/lib/core/future.dart b/lib/core/future.dart |
index 6b2fa19e3e82b3c5abb094af4f21570117fab0a5..d0cda97769dcaf6abfa1fca55d770c128d7c13a1 100644 |
--- a/lib/core/future.dart |
+++ b/lib/core/future.dart |
@@ -123,8 +123,20 @@ interface Future<T> default FutureImpl<T> { |
* chain, and any you add afterwards will not be invoked. |
*/ |
Future chain(Future transformation(T value)); |
-} |
+ /** |
+ * A future representing [transformation] applied to this future's exception. |
+ * This can be used to "catch" an exception coming from `this` and translate |
+ * it to a more appropriate result. |
+ * |
+ * If this future gets a value, it simply completes to that same value. If an |
+ * exception occurs, then [transformation] will be called with the exception |
+ * value. If [transformation] itself throws an exception, then the returned |
+ * future completes with that exception. Otherwise, the future will complete |
+ * with the value returned by [transformation]. |
+ */ |
+ Future transformException(transformation(Object exception)); |
+} |
/** |
* A [Completer] is used to produce [Future]s and supply their value when it |