Why is Observable not accepting catch ?
To use the 'Catch' operator, you need to import it from the rxjs library in this way:
import 'rxjs/add/operator/catch';
So you'll be able to use it.
As the Observable is asynchronous, try / catch does not work. You should set an error callback as the example below angular documentation :
myObservable.subscribe({
next(num) { console.log('Next num: ' + num)},
error(err) { console.log('Received an errror: ' + err)}
});