Index: corelib/src/implementation/future_implementation.dart |
diff --git a/corelib/src/implementation/future_implementation.dart b/corelib/src/implementation/future_implementation.dart |
index 48c7d405b7c0d58f31143d1268c6ac93c1d66a79..be56fe6f83efc572f8300015bcfe0c4397b5ab34 100644 |
--- a/corelib/src/implementation/future_implementation.dart |
+++ b/corelib/src/implementation/future_implementation.dart |
@@ -94,8 +94,15 @@ class FutureImpl<T> implements Future<T> { |
} |
} |
- void handleException(void onException(Object exception)) { |
- _exceptionHandlers.add(onException); |
+ void handleException(bool onException(Object exception)) { |
+ if (_exceptionHandled) return; |
+ if (_isComplete) { |
+ if (_exception != null) { |
+ _exceptionHandled = onException(_exception); |
+ } |
+ } else { |
+ _exceptionHandlers.add(onException); |
+ } |
} |
void _complete() { |