Как правильно обрабатывать и контролировать ошибки в Angular и Web API - 2 - PullRequest
0 голосов
/ 30 апреля 2018

Мне интересно, как правильно обрабатывать и контролировать ошибки в Angular & Web API, в некоторых уроках я видел, что ошибки обрабатываются в компоненте, а не в сервисе, который извлекает данные ... и, в основном, ошибки как backend, так и angular / clients обрабатываются в таком компоненте, как этот:

enter image description here

Мне интересно, как это возможно, чтобы он обрабатывал ошибки компонента и интерфейса, и компонента? Так значит ли это, что мне не нужно пробовать / ловить в веб-API? это должно справиться с этим также?

Я запутался здесь, пожалуйста, объясните мне этот пример ...

И я подумал, что обработчик ошибок должен быть добавлен в service.ts - в этом примере PeopleService, тогда как PeopleService выглядит так:

enter image description here

Так что я запутался в этом:

Разве в service.ts не должно быть логики, которая бы обрабатывала ошибки?

Разве я не должен написать try / catch в WebApi, как получаются ошибки бэкэнда? здесь обрабатывается?

Спасибо за помощь, ребята Ура!

1 Ответ

0 голосов
/ 30 апреля 2018

В вашем примере ошибка бэкэнда - что-то вроде того, что сервер ответил 404 (не найдено). Например, вы запросили определенного человека по идентификатору, и сервер не нашел ни одного человека, связанного с этим идентификатором, поэтому он возвращает ответ с 404. Таким образом, клиент узнает, что человек, которого пытается найти пользователь, не существует.

Разве в service.ts не должно быть логики, которая бы обрабатывала ошибки?

С Угловая направляющая :

Проверка, интерпретация и устранение ошибок - это то, что вы хотите делать в сервисе, а не в компоненте.

Ошибки заключены в ErrorObservable в службе, а не в компоненте.

тогда в вашем компоненте вы сделаете что-то вроде:

service.subscribe(
   result => this.result = result,
   error => console.log(error)
);

Разве я не должен писать try / catch в WebApi, как же здесь обрабатываются ошибки бэкэнда?

Вы не обрабатываете ошибки, возникающие в бэкэнде. Вы обрабатываете ошибки, полученные из ответа сервера. Например: если в вашем бэкэнде есть ошибка с нулевой ссылкой, то обработка, подобная вашей, не спасет ваш сервер от сбоя.

Бэкэнд - это отдельный процесс. У него есть свои обработчики ошибок. Код клиента (угловой) запускается в браузере пользователя.

Руководство можно найти на сайте , чтобы узнать больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...