Repository: angular
Issue: Exception/Error In Resolvers (Router) can not be catched in the subscription to "activatedRoute.data"
Labels: feature,freq3: high,area: router,feature: under consideration

<!--
IF YOU DON'T FILL OUT THE FOLLOWING INFORMATION WE MIGHT CLOSE YOUR ISSUE WITHOUT INVESTIGATING
-->

**I'm submitting a ...** (check one with "x")

```
[X ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
```

**Current behavior**
<!-- Describe how the bug manifests. -->
I'm using the Router with Resolver interfaces to get some data form a service (backend) before creating a component which will render the data (subscribing to it).
If  an exception occurs in the Resolver the application breaks.  (Error: Uncaught (in promise))

**Expected behavior**
<!-- Describe what the behavior would be without the bug. -->
If there is an exception in the Resolver i expect the subscribe error function to be called but the ErrorObservable appears in the "activatedRoute.data.value"  instead.

![image](https://cloud.githubusercontent.com/assets/12108584/21853282/c68edfb2-d816-11e6-8573-9adc8e898020.png)

```
// some component
    ngOnInit() {
        this.activatedRoute.data
            .subscribe(
                (data) => {
                    this.data = data.data] || {};
                    console.log('data was set to ' + this.data)
                },
                (error) => {
                    /// we never get here, no matter there was a Promise.reject(), throw Error(), etc.
                     console.log('ups! Error getting data')
                     alert(error);
                });
    }

// some resolver
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): BehaviorSubject<any>|Observable<any>|Promise<any>|any {
     return Observable.throw('This always fails');
}
```

**Minimal reproduction of the problem with instructions**

check out the plunker [http://plnkr.co/edit/MaiM6T1COr2ppB2AMANx](http://plnkr.co/edit/MaiM6T1COr2ppB2AMANx)
<!--
If the current behavior is a bug or you can illustrate your feature request better with an example, 
please provide the _STEPS TO REPRODUCE_ and if possible a _MINIMAL DEMO_ of the problem via
https://plnkr.co or similar (you can use this template as a starting point: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5).
-->

**What is the motivation / use case for changing the behavior?**
<!-- Describe the motivation or the concrete use case -->
Catch and treat exceptions within the target component
**Please tell us about your environment:**
<!-- Operating system, IDE, package manager, HTTP server, ... -->

* **Angular version:** 2.0.X
2.3.1
<!-- Check whether this is still an issue in the most recent Angular version -->
Yes
* **Browser:** [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]
<!-- All browsers where this could be reproduced -->
All 
* **Language:** [all | TypeScript X.X | ES6/7 | ES5]
TypeScript 2.1.1
* **Node (for AoT issues):**`node --version` =