Как работать с кодами состояния http, отличными от 200 в Angular 2

Прямо сейчас, как я делаю http-запросы (заимствовано изэтот ответ) это:

POST(url, data) {
        var headers = new Headers(), authtoken = localStorage.getItem('authtoken');
        headers.append("Content-Type", 'application/json');

        if (authtoken) {
        headers.append("Authorization", 'Token ' + authtoken)
        }
        headers.append("Accept", 'application/json');

        var requestoptions = new RequestOptions({
            method: RequestMethod.Post,
            url: this.apiURL + url,
            headers: headers,
            body: JSON.stringify(data)
        })

        return this.http.request(new Request(requestoptions))
        .map((res: Response) => {
            if (res) {
                return { status: res.status, json: res.json() }
            }
        });
    }

Это работает нормально, за исключением того факта, что angular2 завершится с ошибкой, если возвращенный код состояния будет отличным от 200. Например, если пользователь хочет что-то опубликовать, а сервер возвращает 400, angular 2 выдаст исключение:

uncaught исключения: [объект объекта]

Как я могу избежать этого? Я хотел бы обработать эти коды состояния в своем приложении, чтобы улучшить взаимодействие с пользователем (показать ошибки и т. Д.)

Ответы на вопрос(2)

Ваш ответ на вопрос