В вашем примере ошибка бэкэнда - что-то вроде того, что сервер ответил 404 (не найдено). Например, вы запросили определенного человека по идентификатору, и сервер не нашел ни одного человека, связанного с этим идентификатором, поэтому он возвращает ответ с 404. Таким образом, клиент узнает, что человек, которого пытается найти пользователь, не существует.
Разве в service.ts не должно быть логики, которая бы обрабатывала ошибки?
С Угловая направляющая :
Проверка, интерпретация и устранение ошибок - это то, что вы хотите делать в сервисе, а не в компоненте.
Ошибки заключены в ErrorObservable
в службе, а не в компоненте.
тогда в вашем компоненте вы сделаете что-то вроде:
service.subscribe(
result => this.result = result,
error => console.log(error)
);
Разве я не должен писать try / catch в WebApi, как же здесь обрабатываются ошибки бэкэнда?
Вы не обрабатываете ошибки, возникающие в бэкэнде. Вы обрабатываете ошибки, полученные из ответа сервера. Например: если в вашем бэкэнде есть ошибка с нулевой ссылкой, то обработка, подобная вашей, не спасет ваш сервер от сбоя.
Бэкэнд - это отдельный процесс. У него есть свои обработчики ошибок. Код клиента (угловой) запускается в браузере пользователя.
Руководство можно найти на сайте , чтобы узнать больше.