1
00:00:00,809 --> 00:00:04,431
[MUSIC] Die

2
00:00:04,431 --> 00:00:08,086
Kommunikation zwischen Client und Server ist nie ein Deal.

3
00:00:08,086 --> 00:00:10,326
Um ein berühmtes Sprichwort zu paraphrasieren,

4
00:00:10,326 --> 00:00:14,168
gibt es viele Köcher zwischen dem Client und dem Server.

5
00:00:14,168 --> 00:00:17,226
Wie gehen wir also mit Fehlern um, wenn sie auftreten,

6
00:00:17,226 --> 00:00:21,415
wenn wir zwischen dem Client und dem Server kommunizieren?

7
00:00:21,415 --> 00:00:26,008
Lassen Sie uns darüber in dieser Übung sprechen.

8
00:00:26,008 --> 00:00:29,931
Wenn der Server eine Antwort generiert oder der HTTP-Client

9
00:00:29,931 --> 00:00:35,110
während der Kommunikation mit dem Server auf einen Fehler stößt und dann

10
00:00:35,110 --> 00:00:40,390
eine Fehlerantwort generiert, wird diese in Form einer HTTP-Fehlerantwort geliefert.

11
00:00:40,390 --> 00:00:43,760
Nun, diese Antwort, wollen wir in der Lage sein, sie zu verarbeiten und

12
00:00:43,760 --> 00:00:48,840
dann in eine Antwortnachrichtenzeichenfolge

13
00:00:48,840 --> 00:00:54,790
zu verwandeln, die an den Client geliefert werden kann, so dass der Client dies auf dem Bildschirm anzeigen kann.

14
00:00:54,790 --> 00:00:56,727
Um uns zu ermöglichen, dies zu tun,

15
00:00:56,727 --> 00:01:02,727
werden wir einen neuen Dienst namens Prozess HTTP-Nachricht in diesem erstellen, dies ist Ordner. Geben

16
00:01:02,727 --> 00:01:08,663
Sie dazu an der Eingabeaufforderung ng,

17
00:01:08,663 --> 00:01:15,174
g service services/processhttpmsg ein

18
00:01:15,174 --> 00:01:22,265
und generieren Sie den ProcessHttpMsg Dienst.

19
00:01:22,265 --> 00:01:26,178
Sobald der Dienst generiert wurde, werden wir dann weitermachen und

20
00:01:26,178 --> 00:01:27,921
ihn in das App-Modul hinzufügen.

21
00:01:27,921 --> 00:01:36,240
Und dann fügen wir eine Methode zum ProcessHttpMsg Dienst hinzu.

22
00:01:36,240 --> 00:01:40,068
Nachdem wir nun den ProcessHttpMsg Dienst erstellt haben,

23
00:01:40,068 --> 00:01:44,653
gehen wir weiter und fügen Sie das dann in die app.module.ts Datei.

24
00:01:44,653 --> 00:01:52,993
Gehen Sie also zur Datei app.module.ts,

25
00:01:52,993 --> 00:02:02,353
lassen Sie mich den ProcessHttpMsg Dienst importieren,

26
00:02:06,191 --> 00:02:15,255
Von '. /services/process-httpmsg.service '.

27
00:02:15,255 --> 00:02:22,945
Sobald das importiert wurde, werden wir in der Lage sein, das in unserer Anwendung zu verwenden.

28
00:02:22,945 --> 00:02:26,463
Gehen wir also weiter und fügen Sie das unseren Anbietern hinzu. Wenn ich

29
00:02:26,463 --> 00:02:29,216
also in unsere Provider gehe,

30
00:02:29,216 --> 00:02:34,952
lasse ich den ProcessHttpMsgService zu den Anbietern hinzufügen.

31
00:02:34,952 --> 00:02:38,429
Das erste, was wir tun werden, ist eine neue Methode in

32
00:02:38,429 --> 00:02:41,618
den ProcessHttpMsgService namens Handle-Fehler aufzunehmen,

33
00:02:41,618 --> 00:02:45,105
die sich um die Behandlung von Fehlern kümmern, wenn sie auftreten.

34
00:02:45,105 --> 00:02:51,220
Und dann werden wir sie in den Diensten nutzen, in denen wir auf den Server zugreifen.

35
00:02:51,220 --> 00:02:54,546
Um zu beginnen, lassen Sie uns zuerst importieren,

36
00:02:57,928 --> 00:03:03,969
ThrowError von, rxjs,

37
00:03:03,969 --> 00:03:09,766
und das hilft uns, Fehler zu werfen, wann immer das auftritt.

38
00:03:12,005 --> 00:03:20,787
Und dann importieren wir HttpErrorResponse von,

39
00:03:23,316 --> 00:03:28,193
eckigular/common/http.

40
00:03:30,926 --> 00:03:35,632
Dann werden wir beginnen HandleError-Methode zu entwerfen

41
00:03:35,632 --> 00:03:41,257
, und dies nimmt als Parameter einen Fehler, der eine Antwort sein könnte,

42
00:03:41,257 --> 00:03:45,042
die eine Fehlerantwort vom Server ist,

43
00:03:45,042 --> 00:03:48,746
oder einen anderen Grund, dass der Fehler auftritt.

44
00:03:48,746 --> 00:03:54,095
Also, was sollen wir innerhalb dieser HandleError-Methode tun?

45
00:03:54,095 --> 00:04:02,195
Lassen Sie uns versuchen, eine Nachricht zu konstruieren, die zusammenfasst, worum es bei dem Fehler geht.

46
00:04:02,195 --> 00:04:06,389
Also werden wir hier eine neue String-Variable einschließen.

47
00:04:07,880 --> 00:04:13,080
Wenn error.error eine Instanz

48
00:04:13,080 --> 00:04:18,699
von ErrorEvent ist. Wenn dies also ein Fehlerereignis ist, das

49
00:04:18,699 --> 00:04:24,170
auftritt, enthält die error.error.message Informationen.

50
00:04:24,170 --> 00:04:26,695
Also setzen wir die Fehlermeldung auf

51
00:04:26,695 --> 00:04:35,630
error.error.message.

52
00:04:35,630 --> 00:04:42,630
Wenn das nicht der Fall ist, dann bedeutet das, dass dies von der Serverseite kommt,

53
00:04:42,630 --> 00:04:48,500
und in diesem Fall wird die Fehlermeldung erstellt, indem man gleich backquotes sagt,

54
00:04:48,500 --> 00:04:55,940
notiert die Backquotes hier und dann $ {error.status}.

55
00:04:55,940 --> 00:04:59,450
Also extrahieren wir die Statusinformationen von dort.

56
00:04:59,450 --> 00:05:03,956
Und dann, - Error.statusText,

57
00:05:03,956 --> 00:05:07,710
wenn der StatusText existiert, oder

58
00:05:07,710 --> 00:05:12,226
das wird eine leere Zeichenfolge sein.

59
00:05:12,226 --> 00:05:17,691
Und dann werden wir auch den error.error selbst,

60
00:05:17,691 --> 00:05:23,866
das vollständige Fehlerobjekt selbst, direkt dort in die Zeichenfolge einschließen.

61
00:05:23,866 --> 00:05:29,320
Und dann verwenden Sie das als unsere Fehlermeldung.

62
00:05:29,320 --> 00:05:33,484
Jetzt, sobald wir die Fehlermeldung haben,

63
00:05:33,484 --> 00:05:38,169
können wir den ThrowError verwenden, um

64
00:05:38,169 --> 00:05:43,520
einen Fehler zurückzugeben, der für unsere Anwendung beobachtet werden kann.

65
00:05:44,940 --> 00:05:48,960
Was das bedeutet, ist, dass dies zu diesem Zeitpunkt einen Fehler auslöst,

66
00:05:48,960 --> 00:05:51,370
wobei die Fehlermeldung dort enthalten ist.

67
00:05:51,370 --> 00:05:56,549
Diese Fehlermeldung wird also basierend auf den Informationen erstellt,

68
00:05:56,549 --> 00:06:02,243
die wir hier erhalten, entweder weil die Serverseite mit einem Fehler geantwortet hat oder

69
00:06:02,243 --> 00:06:05,111
der Fehler aus anderen Gründen stammen könnte.

70
00:06:05,111 --> 00:06:09,606
In beiden Fällen werden wir also eine Fehlermeldung erstellen und sie dann zurückgeben.

71
00:06:09,606 --> 00:06:12,493
Nun, wo verwenden wir diesen Handle-Fehler?

72
00:06:12,493 --> 00:06:17,549
Nun, innerhalb unserer Dienste, zum Beispiel in der Datei dishservice.ts,

73
00:06:17,549 --> 00:06:22,866
sahen wir, dass früher, als wir gesagt haben, dieses HTTP bekommen, und dann haben wir gerade Karte gesagt,

74
00:06:22,866 --> 00:06:28,020
und dann angenommen, dass die Antwort immer eine positive Antwort ist.

75
00:06:28,020 --> 00:06:31,580
Aber nehmen wir an, ihre Antwort ist nicht positiv, und

76
00:06:31,580 --> 00:06:37,330
dann gibt es einen Fehler zurück, dann müssen wir diesen Fehler abfangen.

77
00:06:37,330 --> 00:06:44,180
Um uns dabei zu helfen, importieren wir den CatchError-Operator von rxjs,

78
00:06:44,180 --> 00:06:50,690
und dann importieren wir auch den ProcessHttpMsgService

79
00:06:50,690 --> 00:06:56,001
, den wir zuvor erstellt haben, in

80
00:06:56,001 --> 00:07:01,860
unseren Dish Service, damit wir die Handle Error Methode von dort verwenden können.

81
00:07:01,860 --> 00:07:08,060
Also importieren wir dies aus der. /process-httpmsg.service.

82
00:07:08,060 --> 00:07:12,670
Und dann, wenn wir zum Konstruktor gehen,

83
00:07:12,670 --> 00:07:18,690
injizieren wir jetzt den Prozess HTTP-Nachrichtendienst

84
00:07:18,690 --> 00:07:22,910
zusammen mit dem HTTP-Client in den Konstruktor.

85
00:07:22,910 --> 00:07:27,080
Damit wir diesen Service nutzen können,

86
00:07:27,080 --> 00:07:32,280
insbesondere die Handle-Fehler-Methode des Dienstes, um die Fehler zu behandeln

87
00:07:32,280 --> 00:07:37,710
, die von unserem HTTP-Client dort zurückgegeben werden.

88
00:07:38,930 --> 00:07:43,009
Jetzt, sobald wir den Konstruktor konfiguriert haben,

89
00:07:43,009 --> 00:07:46,988
dann um Fehler in der GetDishs-Methode zum

90
00:07:46,988 --> 00:07:50,980
Beispiel zu behandeln, werden wir an catchErrors Methode pipe.

91
00:07:50,980 --> 00:07:54,762
Rufen Sie dann die HandleError-Methode nach

92
00:07:54,762 --> 00:08:00,446
this.ProcesshttpMsgService innerhalb der catchError-Methode auf.

93
00:08:00,446 --> 00:08:07,817
Auf diese Weise Wenn der HTTP-Client einen Fehler zurückgibt, wird dieser verarbeitet und

94
00:08:07,817 --> 00:08:12,875
die entsprechende Fehlermeldung extrahiert.

95
00:08:12,875 --> 00:08:16,879
Und dann wird der Fehler an diesem

96
00:08:16,879 --> 00:08:20,112
Punkt durch die HandleError-Methode ausgelöst.

97
00:08:20,112 --> 00:08:24,108
Ebenso lassen Sie uns dasselbe mit den

98
00:08:24,108 --> 00:08:27,710
Methoden GetDish und GetFeatureDish auch tun.

99
00:08:27,710 --> 00:08:31,710
Nun, wenn es um die GetDish IDS-Methode geht,

100
00:08:31,710 --> 00:08:36,200
da die GetDish IDS-Methode die getDish-Methode verwendet,.

101
00:08:36,200 --> 00:08:40,670
Daher müssen wir den HandleError nicht explizit aufrufen, denn wenn ein Fehler auftritt, hat

102
00:08:40,670 --> 00:08:45,560
die GetDishs-Methode diesen Fehler bereits in eine Fehlerzeichenfolge konvertiert.

103
00:08:45,560 --> 00:08:50,930
Also müssen wir nur den Fehler abfangen und dann den Fehler von GetDish Ids zurückgeben.

104
00:08:50,930 --> 00:08:55,020
Normalerweise würden wir nicht einmal auf diesen Punkt kommen, wenn ein Fehler auftritt, da

105
00:08:55,020 --> 00:09:00,250
die GetDishs-Methode den Fehler zu diesem Zeitpunkt angemessen behandelt hätte.

106
00:09:00,250 --> 00:09:06,880
Sobald wir also den Geschirrservice entsprechend konfiguriert haben,

107
00:09:06,880 --> 00:09:12,600
können wir dann die

108
00:09:12,600 --> 00:09:17,283
CatCError-Methode nutzen, um die auftretenden Fehler zu beheben.

109
00:09:17,283 --> 00:09:23,647
Nun, da wir unseren Service aktualisiert haben, um mit Fehlern umgehen zu können.

110
00:09:23,647 --> 00:09:27,486
Wie gehen wir damit innerhalb unserer Komponente selbst um?

111
00:09:27,486 --> 00:09:31,309
Also innerhalb einer Komponente, so zum Beispiel, wenn wir auf die Menükomponente gehen.

112
00:09:31,309 --> 00:09:34,557
Was wir erkennen, ist, dass, wenn wir das Abonnement machen,

113
00:09:34,557 --> 00:09:38,280
wir erwarteten, dass die Gerichte an uns geliefert werden.

114
00:09:38,280 --> 00:09:40,750
Nun ist es möglich, dass die Anweisung des Geschirrs,

115
00:09:40,750 --> 00:09:44,210
der Fehler durch den beobachtbaren Wurf geliefert wird und

116
00:09:44,210 --> 00:09:47,430
dann führt, dass die Fehlermeldung uns zur Verfügung steht.

117
00:09:47,430 --> 00:09:52,540
Also, um mit dieser Situation umzugehen, werde ich eine neue

118
00:09:52,540 --> 00:09:59,088
Variable namens ErRmess in der Menükomponente vorstellen, die vom Typ String ist.

119
00:09:59,088 --> 00:10:05,647
Und dann bietet die Subscribe-Methode selbst eine Möglichkeit, Fehler zu behandeln.

120
00:10:05,647 --> 00:10:12,315
Also die Subscribe-Methode, im Moment haben wir nur eine Funktion hier angegeben.

121
00:10:12,315 --> 00:10:17,142
Wir können auch eine zweite Funktion angeben, die

122
00:10:17,142 --> 00:10:21,020
aufgerufen wird, wenn der Fehler resultiert.

123
00:10:21,020 --> 00:10:26,000
In diesem Fall kann ich also eine zweite Fehlerfunktion bereitstellen, die besagt,

124
00:10:26,000 --> 00:10:30,460
ErrMess, was der Wert ist, der zurückgegeben wird,

125
00:10:30,460 --> 00:10:35,630
wenn der beobachtbare Wurf vom DishService ausgeführt wird.

126
00:10:35,630 --> 00:10:43,850
Also in diesem Fall würde ich sagen this.Errmess = <any>Errmess, und das war's.

127
00:10:43,850 --> 00:10:48,709
Was also passiert, ist, dass, wenn das Observable

128
00:10:48,709 --> 00:10:53,082
vom DishService zurückgegeben wird, ein Wert ist

129
00:10:53,082 --> 00:10:57,707
, dann würde dies vom ersten Teil behandelt werden.

130
00:10:57,707 --> 00:11:01,434
Wenn das Observable mit dem beobachtbaren Wurf zurückgegeben

131
00:11:01,434 --> 00:11:03,874
wird, wird diese Funktion ausgeführt.

132
00:11:03,874 --> 00:11:07,689
Und in dieser Funktion nehmen wir die Fehlermeldung und

133
00:11:07,689 --> 00:11:12,949
erfassen diese Fehlermeldung dann in diese ErrMeß-Zeichenfolge, die wir hier haben.

134
00:11:12,949 --> 00:11:16,776
So haben wir jetzt die Fehlermeldung zur Verfügung, so dass

135
00:11:16,776 --> 00:11:21,940
wir diese Fehlermeldung in der Ansicht dieser Menükomponente anzeigen können.

136
00:11:21,940 --> 00:11:25,910
Wie zeigen wir das in der Menükomponentenansicht an?

137
00:11:25,910 --> 00:11:33,700
Also gehen Sie zu Menü Komponenten Template-Datei, hier sehen wir, dass, wenn Gerichte nicht null ist,

138
00:11:33,700 --> 00:11:39,200
dann werden wir das Menü mit allen Gerichten anzeigen.

139
00:11:39,200 --> 00:11:46,550
Wenn Gerichte null ist, dann wird dieser Spinner dort angezeigt.

140
00:11:46,550 --> 00:11:50,903
Jetzt werden wir hier noch einen hinzufügen,

141
00:11:50,903 --> 00:11:55,107
auch wenn die ErrMess, die wir haben,

142
00:11:55,107 --> 00:11:59,912
die Variable, nicht null ist, dann

143
00:11:59,912 --> 00:12:04,866
sollte auch der Spinner versteckt werden und dann

144
00:12:04,866 --> 00:12:10,300
schließlich ein weiteres div mit einem nGIF hinzufügen.

145
00:12:10,300 --> 00:12:15,077
Also, was das tut, ist, dass dieser letzte Tauchgang angezeigt wird,

146
00:12:15,077 --> 00:12:19,470
falls es einen Fehler gibt, und die Fehlermeldung. Die

147
00:12:19,470 --> 00:12:23,345
ErrMeß-Zeichenfolge wird für die Fehlermeldung eingerichtet.

148
00:12:23,345 --> 00:12:29,648
Also in diesem Fall werden wir einfach h2 Fehler sagen,

149
00:12:29,648 --> 00:12:35,962
und dann werde ich nur diese Zeichenfolge anzeigen als,

150
00:12:41,159 --> 00:12:46,586
Eine Zeichenfolge innerhalb der Ansicht dort, das ist es.

151
00:12:46,586 --> 00:12:50,539
Sie können eine aufwändigere Art und Weise durchführen,

152
00:12:50,539 --> 00:12:51,081
um die Fehlermeldung anzuzeigen, wenn Sie dies wünschen.

153
00:12:51,081 --> 00:12:54,118
Aber alles, was ich tun werde, ist, wenn es einen Fehler gibt,

154
00:12:54,118 --> 00:12:58,280
werde ich einfach Fehler auf dem Bildschirm anzeigen und dann eine ErRmess anzeigen.

155
00:12:58,280 --> 00:13:04,283
Sie können es sogar stylen, indem Sie die Farbe

156
00:13:04,283 --> 00:13:09,875
auf rot und so weiter ändern, aber ich werde es einfach so lassen.

157
00:13:09,875 --> 00:13:16,477
Damit werden wir am Ende die Fehlermeldung in der Ansicht hier anzeigen.

158
00:13:16,477 --> 00:13:21,471
Das gleiche Verfahren kann auch mit der Geschirrkomponente und

159
00:13:21,471 --> 00:13:26,764
auch der Home-Komponente verwendet werden, wo wir auf den Geschirrservice zugreifen.

160
00:13:26,764 --> 00:13:32,692
Also gehen Sie auf die Schüssel Komponente, werde genau das gleiche tun,

161
00:13:32,692 --> 00:13:42,680
so in der Schüssel Komponente werde ich die, ErRmess hier einschließen.

162
00:13:42,680 --> 00:13:45,654
Und dann genau hier innerhalb des Abonnements,

163
00:13:45,654 --> 00:13:49,190
hier erhalten wir den Teller Wert.

164
00:13:49,190 --> 00:13:50,260
Also der erste Teil,

165
00:13:50,260 --> 00:13:55,770
was wir bereits aufgenommen haben, wird aufgerufen, wenn das beobachtbare einen Wert zurückgibt.

166
00:13:55,770 --> 00:14:00,770
Aber sollte es keinen Wert zurückgeben, dann müssen wir uns mit der Fehlermeldung befassen.

167
00:14:00,770 --> 00:14:04,360
Und wir werden genau die gleiche

168
00:14:04,360 --> 00:14:09,620
Fehlermeldungsfunktion verwenden, die wir zuvor in der Menükomponente definiert haben.

169
00:14:09,620 --> 00:14:15,926
Also, wir werden sagen, dass diese.Ermess

170
00:14:15,926 --> 00:14:20,791
= Ermess hier.

171
00:14:20,791 --> 00:14:26,971
Das war's, also ist meine Geschirrkomponente jetzt aktualisiert.

172
00:14:26,971 --> 00:14:31,521
Also muss ich die Vorlagendatei der Geschirrkomponente aktualisieren. Wenn wir

173
00:14:31,521 --> 00:14:34,317
also zur Vorlagendatei gehen,

174
00:14:34,317 --> 00:14:40,240
sehen wir, dass wir das Gericht anzeigen werden, wenn das Gericht nicht null ist.

175
00:14:40,240 --> 00:14:45,034
Und dann unten hier unten behandeln wir die

176
00:14:45,034 --> 00:14:49,326
Situation, in der wir den Spinner zeigen, wenn das Gericht null ist.

177
00:14:49,326 --> 00:14:54,826
Also lassen Sie mich auch hinzufügen, wenn die Fehlermeldung nicht null ist, dann

178
00:14:54,826 --> 00:15:00,235
sollte ich eine Fehlermeldung anstatt das Gericht hier anzeigen, richtig?

179
00:15:00,235 --> 00:15:03,827
Lassen Sie mich also fortfahren und

180
00:15:03,827 --> 00:15:10,075
den Code aus der Menükomponente kopieren.

181
00:15:10,075 --> 00:15:12,790
Ich werde

182
00:15:12,790 --> 00:15:16,171
auch genau den gleichen Code für die Schüssel-Detailkomponenten-Vorlagendatei verwenden.

183
00:15:16,171 --> 00:15:19,435
Also, genau da.

184
00:15:19,435 --> 00:15:22,823
Lassen Sie mich voran und fügen Sie den Code hier ein.

185
00:15:22,823 --> 00:15:26,130
Wir sehen also, dass, wenn ErrMess nicht null ist,

186
00:15:26,130 --> 00:15:30,838
dieser Fehler in der Ansicht dort angezeigt wird.

187
00:15:30,838 --> 00:15:31,938
Jetzt die gleiche Sache,

188
00:15:31,938 --> 00:15:36,502
gehen wir zur Home-Komponente müssen wir durch das gleiche Verfahren gehen.

189
00:15:36,502 --> 00:15:40,688
Jetzt innerhalb der Home-Komponente, natürlich, haben wir Gericht, Förderung und Führer.

190
00:15:40,688 --> 00:15:47,625
Also werde ich separate, Strings für

191
00:15:47,625 --> 00:15:53,169
jeden von ihnen definieren, weil der Fehler von einem der drei entstehen könnte.

192
00:15:53,169 --> 00:15:57,927
Im Moment haben wir es nur mit Gericht zu tun, das von der Serverseite geholt wird.

193
00:15:57,927 --> 00:16:04,000
Die restlichen zwei werde ich erwarten, dass Sie das als Teil der letzten Aufgabe tun.

194
00:16:04,000 --> 00:16:10,252
Also werden wir, ich werde sagen Gericht errmess String und dann gehen in den Code hier.

195
00:16:10,252 --> 00:16:13,630
Und im Code hier

196
00:16:13,630 --> 00:16:18,146
werden wir einfach Errmess sagen.

197
00:16:18,146 --> 00:16:23,925
Dieses Gericht errmess = jede

198
00:16:23,925 --> 00:16:30,130
Errmess, das ist es.

199
00:16:30,130 --> 00:16:35,036
Aktualisieren Sie auch die Vorlagendateien der Home-Komponenten.

200
00:16:35,036 --> 00:16:40,215
Und auf die Home-Komponenten-Vorlagendatei gehen,

201
00:16:40,215 --> 00:16:45,392
sehen wir, dass wir den Geschirrkorb dort angezeigt haben,

202
00:16:45,392 --> 00:16:50,461
also sollte ich jetzt für diesen einen ErrMess sagen oder Gericht.

203
00:16:50,461 --> 00:16:55,738
Und dann, unten hier unten, werde ich den Code einfügen

204
00:16:55,738 --> 00:17:00,648
, den ich aus der Menükomponente kopiert habe, und

205
00:17:00,648 --> 00:17:04,600
dann aktualisiere ich ihn, um ErRmess hier zu behandeln.

206
00:17:04,600 --> 00:17:11,957
Und auch, aktualisieren Sie das hier zu Disherrmess, das war's.

207
00:17:11,957 --> 00:17:14,113
Speichern wir die Änderungen. Wenn Sie

208
00:17:14,113 --> 00:17:18,823
zum Browser gehen, sehen Sie, dass alles wie zuvor funktioniert.

209
00:17:18,823 --> 00:17:24,249
Das Haus, die Menükomponente und auch die Schale Detailkomponente ohne Probleme.

210
00:17:24,249 --> 00:17:27,498
Nun ist die Frage, wie verursachen wir Fehler?

211
00:17:27,498 --> 00:17:35,566
Um Fehler zu verursachen, ist eine mögliche Möglichkeit, dass wir mit dem Problem umgehen können, dass wir gehen und

212
00:17:35,566 --> 00:17:40,961
suchen eine nicht vorhandene Informationen vom Server.

213
00:17:40,961 --> 00:17:45,865
Lassen Sie mich zum Geschirrservice gehen und dann

214
00:17:45,865 --> 00:17:51,240
mein erstes Problem im DishService hier verursachen.

215
00:17:51,240 --> 00:17:55,460
Also für das vorgestellte Gericht anstelle von Gerichten, lassen Sie mich einen Fehler machen und

216
00:17:55,460 --> 00:17:59,470
zerkleinern und dann speichern Sie die Änderung.

217
00:17:59,470 --> 00:18:04,160
Offensichtlich bedeutet das, dass diese URL nicht existiert.

218
00:18:04,160 --> 00:18:07,482
Also, was passiert, wenn es auf den Server zugreift? Wenn Sie

219
00:18:07,482 --> 00:18:11,514
zum Browser gehen, wenn wir jetzt scrollen,

220
00:18:11,514 --> 00:18:16,504
sehen Sie, dass das Gericht hier nicht angezeigt wird.

221
00:18:16,504 --> 00:18:19,570
Es sagt hier Fehler 404 nicht gefunden.

222
00:18:19,570 --> 00:18:24,170
Dies liegt daran, dass wir versuchen, auf die Dishe-Informationen unter

223
00:18:24,170 --> 00:18:28,424
der URL zuzugreifen, die auf der Serverseite nicht existiert.

224
00:18:28,424 --> 00:18:32,289
So sehen Sie, wie die Fehlermeldung hier angezeigt wird.

225
00:18:32,289 --> 00:18:36,172
Natürlich können Sie ein bisschen schicker sein und mehr arbeiten, um dies zu umgehen und

226
00:18:36,172 --> 00:18:39,460
dann die Fehlermeldung sinnvoller anzuzeigen.

227
00:18:39,460 --> 00:18:44,750
Aber das Grundprinzip wird hier hervorgehoben, dass Sie

228
00:18:44,750 --> 00:18:50,357
eine Fehlermeldung anzeigen können, wenn etwas nicht richtig ausgeführt wird,

229
00:18:50,357 --> 00:18:56,194
wenn Sie versuchen, auf Informationen von Ihrer Serverseite zuzugreifen.

230
00:18:56,194 --> 00:19:02,373
Natürlich ist dies ein künstlich erstellter Fehler in meiner Anwendung.

231
00:19:02,373 --> 00:19:07,020
Um eine weitere Art von Fehler zu verursachen, habe ich in mein Terminal-Fenster gegangen und

232
00:19:07,020 --> 00:19:15,267
dann den Server heruntergefahren, um zu sehen, was meine Angular-Anwendung in diesem Fall tun wird.

233
00:19:15,267 --> 00:19:20,330
Lassen Sie uns nach dem Herunterfahren des Servers sehen, was die Home-Komponente in ihrer Ansicht angezeigt wird. Wenn wir

234
00:19:21,830 --> 00:19:26,620
also zur Home-Komponente gehen, sehen wir jetzt, dass meine

235
00:19:26,620 --> 00:19:31,330
Angular-Anwendung nicht auf den Server zugreifen kann, sie erneut einen Fehler verursacht hat.

236
00:19:31,330 --> 00:19:37,450
Und dann zeigt es diese Zeichenfolge dort an, um anzuzeigen, dass ein Fehler aufgetreten ist.

237
00:19:37,450 --> 00:19:40,560
Natürlich ist dies eine kryptische Zeichenfolge, die

238
00:19:40,560 --> 00:19:45,010
nichts Sinnvolles darüber vermittelt, was die Ursache des Fehlers ist.

239
00:19:45,010 --> 00:19:52,420
Aber das ist alles, was wir versuchen könnten, auf den Server in dieser Anwendung zuzugreifen.

240
00:19:52,420 --> 00:19:56,260
Gleiches gilt, wenn ich zum Menü gehe, sehen Sie die gleiche Art von Sache, die

241
00:19:56,260 --> 00:19:59,010
angezeigt wird, weil der Server nicht verfügbar ist, und so können

242
00:19:59,010 --> 00:20:02,150
die Gerichte Informationen nicht vom Server abgerufen werden.

243
00:20:02,150 --> 00:20:05,110
Damit schließen wir diese Übung ab.

244
00:20:05,110 --> 00:20:07,660
In dieser Übung haben wir gelernt, mit

245
00:20:07,660 --> 00:20:13,040
Fehlern umzugehen, die während der Client-Server-Kommunikation in unserer Angular-Anwendung auftreten.

246
00:20:13,040 --> 00:20:18,333
Dies ist ein guter Zeitpunkt für Sie, ein Git-Commit mit der Nachricht http Teil zwei zu machen.

247
00:20:18,333 --> 00:20:24,225
( MUSIK)