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

2
00:00:04,431 --> 00:00:08,086
التواصل بين العميل والخادم هو أبدا صفقة منتهية.

3
00:00:08,086 --> 00:00:10,326
لإعادة صياغة المثل الشهير،

4
00:00:10,326 --> 00:00:14,168
هناك العديد من جعبة بين العميل والخادم.

5
00:00:14,168 --> 00:00:17,226
فكيف نتعامل مع الأخطاء عندما تنشأ،

6
00:00:17,226 --> 00:00:21,415
عندما نتواصل بين العميل والخادم؟

7
00:00:21,415 --> 00:00:26,008
دعونا نتحدث عن ذلك في هذا التمرين.

8
00:00:26,008 --> 00:00:29,931
عندما يقوم الخادم بإنشاء استجابة، أو عميل HTTP،

9
00:00:29,931 --> 00:00:35,110
أثناء الاتصال بالخادم، يواجه خطأ ثم ينشئ

10
00:00:35,110 --> 00:00:40,390
استجابة خطأ، يتم تسليم هذا في شكل استجابة خطأ HTTP.

11
00:00:40,390 --> 00:00:43,760
الآن، هذه الاستجابة، نريد أن نكون قادرين على معالجتها ومن

12
00:00:43,760 --> 00:00:48,840
ثم تحويلها إلى سلسلة رسائل استجابة، والتي

13
00:00:48,840 --> 00:00:54,790
يمكن تسليمها إلى العميل بحيث يمكن للعميل عرض هذا على الشاشة.

14
00:00:54,790 --> 00:00:56,727
لذلك لتمكيننا من القيام بذلك،

15
00:00:56,727 --> 00:01:02,727
سنقوم بإنشاء خدمة جديدة تسمى رسالة HTTP العملية في هذا، هذا هو المجلد.

16
00:01:02,727 --> 00:01:08,663
لذلك للقيام بذلك، في نوع موجه

17
00:01:08,663 --> 00:01:15,174
نانوغرام، خدمات خدمة/بروسيشتبمسغ،

18
00:01:15,174 --> 00:01:22,265
وتوليد خدمة بروسيشتبمسغ.

19
00:01:22,265 --> 00:01:26,178
الآن، بمجرد إنشاء الخدمة، سنقوم ثم المضي قدما

20
00:01:26,178 --> 00:01:27,921
وإضافتها إلى وحدة التطبيق.

21
00:01:27,921 --> 00:01:36,240
ثم سنضيف طريقة إلى خدمة ProcesShttpmsg.

22
00:01:36,240 --> 00:01:40,068
الآن بعد أن أنشأنا خدمة بروسيشتبمسغ،

23
00:01:40,068 --> 00:01:44,653
دعونا المضي قدما ومن ثم إضافة ذلك إلى ملف app.module.ts.

24
00:01:44,653 --> 00:01:52,993
حتى الذهاب إلى ملف app.module.ts،

25
00:01:52,993 --> 00:02:02,353
اسمحوا لي استيراد خدمة بروسيشتبمسغ،

26
00:02:06,191 --> 00:02:15,255
من '. /الخدمات/العملية-httpmsg.service '.

27
00:02:15,255 --> 00:02:22,945
لذلك بمجرد أن يتم استيرادها، فإننا سوف تكون قادرة على استخدام ذلك في طلبنا.

28
00:02:22,945 --> 00:02:26,463
لذلك دعونا المضي قدما وإضافة ذلك إلى مقدمي الخدمات لدينا.

29
00:02:26,463 --> 00:02:29,216
حتى الذهاب إلى مقدمي الخدمات لدينا،

30
00:02:29,216 --> 00:02:34,952
اسمحوا لي أن أضيف في بروسيشتبمسغسرفيس إلى مقدمي الخدمات.

31
00:02:34,952 --> 00:02:38,429
أول شيء سنقوم به هو تضمين طريقة جديدة في

32
00:02:38,429 --> 00:02:41,618
ProcesshttpmsgService تسمى أخطاء التعامل،

33
00:02:41,618 --> 00:02:45,105
والتي سوف تأخذ الرعاية من معالجة الأخطاء عند ظهورها.

34
00:02:45,105 --> 00:02:51,220
وبعد ذلك سوف نستفيد منها في الخدمات حيث نصل إلى الخادم.

35
00:02:51,220 --> 00:02:54,546
للبدء، دعونا أولا استيراد،

36
00:02:57,928 --> 00:03:03,969
ThrowError من، rxjs،

37
00:03:03,969 --> 00:03:09,766
وهذا يساعدنا على رمي في الخطأ كلما نشأ ذلك.

38
00:03:12,005 --> 00:03:20,787
ثم نقوم باستيراد هتبروريسبونس من،

39
00:03:23,316 --> 00:03:28,193
الزاوي/المشتركة/هتب.

40
00:03:30,926 --> 00:03:35,632
ثم سنبدأ في تصميم طريقة HandleError

41
00:03:35,632 --> 00:03:41,257
، وهذا يأخذ، كمعلمة، خطأ يمكن أن يكون استجابة،

42
00:03:41,257 --> 00:03:45,042
وهو استجابة خطأ من الخادم،

43
00:03:45,042 --> 00:03:48,746
أو أي سبب آخر أن الخطأ ينشأ.

44
00:03:48,746 --> 00:03:54,095
حتى ضمن هذه الطريقة هاندلرور، ماذا يفترض أن نفعل؟

45
00:03:54,095 --> 00:04:02,195
دعونا نحاول إنشاء رسالة تلخص ما هو الخطأ كل شيء.

46
00:04:02,195 --> 00:04:06,389
لذلك سنقوم بتضمين متغير سلسلة جديد هنا.

47
00:04:07,880 --> 00:04:13,080
إذا كان

48
00:04:13,080 --> 00:04:18,699
error.error مثيل ErroRevent، لذلك إذا كان هذا حدث خطأ يحدث،

49
00:04:18,699 --> 00:04:24,170
فسيتضمن error.error.message معلومات.

50
00:04:24,170 --> 00:04:26,695
لذلك سنقوم بتعيين رسالة الخطأ إلى

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

52
00:04:35,630 --> 00:04:42,630
إذا لم يكن هذا هو الحال، فهذا يعني أن هذا يأتي من جانب الخادم،

53
00:04:42,630 --> 00:04:48,500
وهكذا في هذه الحالة، يتم إنشاء رسالة الخطأ بالقول تساوي backquotes،

54
00:04:48,500 --> 00:04:55,940
لاحظ backquotes هنا، ثم $ {error.status}.

55
00:04:55,940 --> 00:04:59,450
لذلك نحن نستخرج معلومات الحالة من هناك.

56
00:04:59,450 --> 00:05:03,956
وبعد ذلك، - Error.StatusText،

57
00:05:03,956 --> 00:05:07,710
إذا كان StatusText موجودًا، أو

58
00:05:07,710 --> 00:05:12,226
ستكون سلسلة فارغة هناك.

59
00:05:12,226 --> 00:05:17,691
وبعد ذلك سوف نقوم أيضًا بتضمين error.error نفسه،

60
00:05:17,691 --> 00:05:23,866
كائن الخطأ الكامل نفسه، هناك في السلسلة.

61
00:05:23,866 --> 00:05:29,320
ثم استخدم ذلك كرسالة خطأ لدينا.

62
00:05:29,320 --> 00:05:33,484
الآن، مرة واحدة لدينا رسالة الخطأ،

63
00:05:33,484 --> 00:05:38,169
ثم سنكون قادرين على استخدام ثروورور

64
00:05:38,169 --> 00:05:43,520
لإرجاع خطأ يمكن ملاحظته إلى التطبيق لدينا.

65
00:05:44,940 --> 00:05:48,960
إذن ما يعنيه هذا هو رمي خطأ في هذه المرحلة،

66
00:05:48,960 --> 00:05:51,370
مع تضمين رسالة الخطأ هناك.

67
00:05:51,370 --> 00:05:56,549
لذلك يتم إنشاء سلسلة رسالة الخطأ هذه استنادًا إلى المعلومات

68
00:05:56,549 --> 00:06:02,243
التي نحصل عليها هنا، إما لأن جانب الخادم استجاب بخطأ أو

69
00:06:02,243 --> 00:06:05,111
قد يكون الخطأ من أسباب أخرى.

70
00:06:05,111 --> 00:06:09,606
لذلك في كلتا الحالتين، سنقوم بإنشاء رسالة خطأ ثم إعادتها.

71
00:06:09,606 --> 00:06:12,493
الآن، أين يمكننا الاستفادة من هذا الخطأ مقبض؟

72
00:06:12,493 --> 00:06:17,549
الآن، ضمن خدماتنا، على سبيل المثال ملف dishservice.ts،

73
00:06:17,549 --> 00:06:22,866
رأينا ذلك في وقت سابق عندما قلنا هذا HTTP الحصول، ثم قلنا الخريطة،

74
00:06:22,866 --> 00:06:28,020
ثم افترضنا أن الاستجابة هي دائما استجابة إيجابية.

75
00:06:28,020 --> 00:06:31,580
ولكن لنفترض أن استجابتهم ليست إيجابية،

76
00:06:31,580 --> 00:06:37,330
ثم تقوم بإرجاع خطأ، ثم نحتاج إلى التقاط هذا الخطأ.

77
00:06:37,330 --> 00:06:44,180
لمساعدتنا في هذا، نقوم باستيراد مشغل CatchError من rxjs،

78
00:06:44,180 --> 00:06:50,690
ثم نقوم أيضًا باستيراد ProcesshttpmsgService

79
00:06:50,690 --> 00:06:56,001
الذي أنشأه للتو في

80
00:06:56,001 --> 00:07:01,860
خدمة الطبق الخاصة بنا حتى نتمكن من استخدام طريقة خطأ المقبض من هناك.

81
00:07:01,860 --> 00:07:08,060
لذلك نحن استيراد هذا من. /عملية-httpmsg.service.

82
00:07:08,060 --> 00:07:12,670
ثم، النزول إلى منشئ،

83
00:07:12,670 --> 00:07:18,690
ونحن الآن حقن خدمة رسالة هتب العملية في

84
00:07:18,690 --> 00:07:22,910
منشئ، جنبا إلى جنب مع عميل هتب.

85
00:07:22,910 --> 00:07:27,080
حتى نتمكن من الاستفادة من هذه الخدمة،

86
00:07:27,080 --> 00:07:32,280
وخاصة طريقة خطأ مقبض الخدمة للتعامل مع الأخطاء

87
00:07:32,280 --> 00:07:37,710
التي يتم إرجاعها من قبل عميل HTTP لدينا هناك.

88
00:07:38,930 --> 00:07:43,009
الآن، بمجرد تكوين المنشئ،

89
00:07:43,009 --> 00:07:46,988
ثم للتعامل مع الخطأ في طريقة getDubishes

90
00:07:46,988 --> 00:07:50,980
على سبيل المثال، سنقوم الأنابيب إلى طريقة CatchErrors.

91
00:07:50,980 --> 00:07:54,762
ثم استدعاء الأسلوب HandleError بعد

92
00:07:54,762 --> 00:08:00,446
هذا.ProcesshttpmsgService ضمن أسلوب CatchError.

93
00:08:00,446 --> 00:08:07,817
بهذه الطريقة عندما يقوم عميل HTTP بإرجاع خطأ، فسيتم معالجة هذا

94
00:08:07,817 --> 00:08:12,875
وسيتم استخراج رسالة الخطأ المناسبة.

95
00:08:12,875 --> 00:08:16,879
وبعد ذلك سينتهي الأمر برمي الخطأ من خلال

96
00:08:16,879 --> 00:08:20,112
طريقة HandleError عند هذه النقطة.

97
00:08:20,112 --> 00:08:24,108
وبالمثل، دعونا نفعل الشيء نفسه

98
00:08:24,108 --> 00:08:27,710
لأساليب getDish و getFeatureDish أيضا.

99
00:08:27,710 --> 00:08:31,710
الآن، عندما يتعلق الأمر بطريقة معرفات getDish،

100
00:08:31,710 --> 00:08:36,200
نظرًا لأن طريقة معرفات getDish تستفيد من طريقة getDishs،.

101
00:08:36,200 --> 00:08:40,670
لذلك لا نحتاج إلى استدعاء HandleError بشكل صريح لأنه في حالة حدوث أي خطأ،

102
00:08:40,670 --> 00:08:45,560
فإن طريقة getDuses قد حولت بالفعل هذا الخطأ إلى سلسلة خطأ.

103
00:08:45,560 --> 00:08:50,930
لذلك نحن بحاجة فقط للقبض على الخطأ ثم إرجاع الخطأ من GetDish معرفات.

104
00:08:50,930 --> 00:08:55,020
عادة، لن نصل حتى إلى هذه النقطة إذا حدث خطأ، لأن

105
00:08:55,020 --> 00:09:00,250
طريقة getDuses كانت ستتعامل مع الخطأ بشكل مناسب في هذه المرحلة.

106
00:09:00,250 --> 00:09:06,880
لذلك مرة واحدة قمنا بتكوين خدمة الطبق بشكل مناسب،

107
00:09:06,880 --> 00:09:12,600
ثم سنكون قادرين على الاستفادة من

108
00:09:12,600 --> 00:09:17,283
طريقة CatchError للتعامل مع الأخطاء التي تنشأ.

109
00:09:17,283 --> 00:09:23,647
الآن بعد أن قمنا بتحديث خدمتنا لتكون قادرة على التعامل مع الأخطاء.

110
00:09:23,647 --> 00:09:27,486
كيف نتعامل مع هذا داخل مكوننا بأنفسهم؟

111
00:09:27,486 --> 00:09:31,309
حتى داخل مكون، لذلك على سبيل المثال، عندما نذهب إلى مكون القائمة.

112
00:09:31,309 --> 00:09:34,557
ما ندركه هو أنه عندما نقوم بالاشتراك،

113
00:09:34,557 --> 00:09:38,280
كنا نتوقع أن يتم تسليم الأطباق لنا.

114
00:09:38,280 --> 00:09:40,750
الآن، فمن الممكن أن تعليمات من الأطباق،

115
00:09:40,750 --> 00:09:44,210
سيتم تسليم الخطأ من قبل رمي ملحوظ ومن

116
00:09:44,210 --> 00:09:47,430
ثم أن يؤدي إلى رسالة الخطأ المتاحة لنا.

117
00:09:47,430 --> 00:09:52,540
لذلك، للتعامل مع هذا الوضع، وسوف أعرض

118
00:09:52,540 --> 00:09:59,088
متغير جديد يسمى إرميس في مكون القائمة الذي هو من نوع سلسلة.

119
00:09:59,088 --> 00:10:05,647
ثم توفر طريقة الاشتراك نفسها طريقة للتعامل مع الأخطاء.

120
00:10:05,647 --> 00:10:12,315
وبالتالي فإن طريقة الاشتراك، في الوقت الحالي قمنا بتحديد وظيفة واحدة فقط هنا.

121
00:10:12,315 --> 00:10:17,142
يمكننا أيضا تحديد وظيفة ثانية والتي

122
00:10:17,142 --> 00:10:21,020
سيتم استدعاؤها عندما ينتج الخطأ.

123
00:10:21,020 --> 00:10:26,000
حتى في هذه الحالة، يمكنني توفير وظيفة خطأ ثانية قائلا،

124
00:10:26,000 --> 00:10:30,460
إرميس، وهي القيمة التي تم إرجاعها في

125
00:10:30,460 --> 00:10:35,630
عندما يتم رمي ملحوظ من قبل ديشسرفيس.

126
00:10:35,630 --> 00:10:43,850
حتى في هذه الحالة، أود أن أقول <any>this.Errmess = إرميس، وهذا كل شيء.

127
00:10:43,850 --> 00:10:48,709
حتى هنا ما يحدث هو أنه عندما

128
00:10:48,709 --> 00:10:53,082
يتم إرجاع الملاحظة من قبل ديشسرفيس هو قيمة،

129
00:10:53,082 --> 00:10:57,707
ثم سيتم التعامل معها من قبل الجزء الأول.

130
00:10:57,707 --> 00:11:01,434
إذا تم إرجاع الملاحظة مع رمي يمكن ملاحظتها،

131
00:11:01,434 --> 00:11:03,874
ثم سيتم تنفيذ هذه الوظيفة.

132
00:11:03,874 --> 00:11:07,689
وفي هذه الوظيفة، نحن نأخذ رسالة الخطأ

133
00:11:07,689 --> 00:11:12,949
ثم التقاط رسالة الخطأ هذه في سلسلة إرميس هذه التي لدينا هنا.

134
00:11:12,949 --> 00:11:16,776
حتى الآن لدينا رسالة الخطأ المتاحة لنا، حتى

135
00:11:16,776 --> 00:11:21,940
نتمكن من عرض رسالة الخطأ هذه على عرض عنصر القائمة هذا.

136
00:11:21,940 --> 00:11:25,910
فكيف يمكننا عرض هذا في عرض مكونات القائمة؟

137
00:11:25,910 --> 00:11:33,700
حتى الذهاب إلى ملف قالب مكونات القائمة، وهنا نرى أنه إذا كانت الأطباق ليست فارغة،

138
00:11:33,700 --> 00:11:39,200
ثم نحن عرض القائمة مع جميع الأطباق.

139
00:11:39,200 --> 00:11:46,550
إذا كانت الأطباق فارغة ثم يتم عرض هذا الدوار هناك.

140
00:11:46,550 --> 00:11:50,903
الآن، سوف نضيف في واحد آخر هنا،

141
00:11:50,903 --> 00:11:55,107
حتى لو كان إرميس التي لدينا،

142
00:11:55,107 --> 00:11:59,912
المتغير، ليست فارغة، ثم أيضا

143
00:11:59,912 --> 00:12:04,866
يجب أن تكون مخفية الدوار وبعد ذلك،

144
00:12:04,866 --> 00:12:10,300
وأخيرا، إضافة في ديف واحد أكثر مع نجيف.

145
00:12:10,300 --> 00:12:15,077
لذلك ما يفعله هذا هو أنه سيتم عرض هذا الغوص الأخير في

146
00:12:15,077 --> 00:12:19,470
حالة وجود أخطاء، ورسالة الخطأ.

147
00:12:19,470 --> 00:12:23,345
يتم إعداد سلسلة إرميسي إلى رسالة الخطأ.

148
00:12:23,345 --> 00:12:29,648
لذلك في هذه الحالة، سنقول ببساطة خطأ h2،

149
00:12:29,648 --> 00:12:35,962
وبعد ذلك سأقوم فقط بعرض تلك السلسلة،

150
00:12:41,159 --> 00:12:46,586
سلسلة داخل العرض هناك، هذا كل شيء.

151
00:12:46,586 --> 00:12:50,539
يمكنك القيام بطريقة أكثر تفصيلاً لعرض رسالة الخطأ إذا كنت

152
00:12:50,539 --> 00:12:51,081
ترغب في ذلك.

153
00:12:51,081 --> 00:12:54,118
ولكن كل ما سأقوم به هو إذا كان هناك خطأ،

154
00:12:54,118 --> 00:12:58,280
وسوف تظهر ببساطة خطأ على الشاشة ومن ثم عرض إرميس.

155
00:12:58,280 --> 00:13:04,283
يمكنك حتى نمط ذلك عن طريق تغيير اللون إلى الأحمر

156
00:13:04,283 --> 00:13:09,875
وهلم جرا، ولكن سأترك فقط من هذا القبيل هناك.

157
00:13:09,875 --> 00:13:16,477
لذلك، مع هذا، سوف ينتهي بنا المطاف عرض رسالة الخطأ في طريقة العرض هنا.

158
00:13:16,477 --> 00:13:21,471
ويمكن أيضا أن تستخدم نفس الإجراء مع مكون الطبق

159
00:13:21,471 --> 00:13:26,764
وأيضا المكون المنزل حيث نحن الوصول إلى خدمة الطبق.

160
00:13:26,764 --> 00:13:32,692
حتى الذهاب إلى مكون الطبق، وأنا ذاهب الى القيام بالضبط نفس الشيء،

161
00:13:32,692 --> 00:13:42,680
وذلك داخل عنصر الطبق وسوف تشمل، إرميس هنا.

162
00:13:42,680 --> 00:13:45,654
ثم هنا في الاشتراك،

163
00:13:45,654 --> 00:13:49,190
وهذا هو المكان الذي نتلقى قيمة الطبق.

164
00:13:49,190 --> 00:13:50,260
وبالتالي فإن الجزء الأول،

165
00:13:50,260 --> 00:13:55,770
ما قمنا بتضمينه بالفعل سيتم استدعاؤه إذا كان يمكن ملاحظته إرجاع قيمة.

166
00:13:55,770 --> 00:14:00,770
ولكن إذا لم تقم بإرجاع قيمة، فنحن بحاجة إلى التعامل مع رسالة الخطأ.

167
00:14:00,770 --> 00:14:04,360
وسنستخدم بالضبط نفس

168
00:14:04,360 --> 00:14:09,620
وظيفة رسالة الخطأ التي حددناها في وقت سابق في مكون القائمة.

169
00:14:09,620 --> 00:14:15,926
لذلك، سوف نقول أن هذا.errmess

170
00:14:15,926 --> 00:14:20,791
= إرميس هنا.

171
00:14:20,791 --> 00:14:26,971
هذا كل شيء، لذلك يتم تحديث مكون الطبق الخاص بي الآن.

172
00:14:26,971 --> 00:14:31,521
لذلك أنا بحاجة إلى تحديث ملف قالب مكون الطبق.

173
00:14:31,521 --> 00:14:34,317
حتى الذهاب إلى ملف القالب،

174
00:14:34,317 --> 00:14:40,240
ونحن نرى أننا سوف يتم عرض الطبق إذا طبق ليست فارغة.

175
00:14:40,240 --> 00:14:45,034
ثم أسفل هنا، ونحن نتعامل مع الوضع

176
00:14:45,034 --> 00:14:49,326
حيث سنعرض الدوار إذا كان الطبق فارغًا.

177
00:14:49,326 --> 00:14:54,826
لذلك اسمحوا لي أن أضيف أيضا، إذا كانت رسالة الخطأ ليست فارغة ثم يجب أن

178
00:14:54,826 --> 00:15:00,235
يكون عرض رسالة خطأ بدلا من الطبق هنا، أليس كذلك؟

179
00:15:00,235 --> 00:15:03,827
لذلك، اسمحوا لي أن المضي قدما

180
00:15:03,827 --> 00:15:10,075
ونسخ التعليمات البرمجية من مكون القائمة.

181
00:15:10,075 --> 00:15:12,790
أنا ذاهب إلى استخدام بالضبط نفس التعليمات البرمجية

182
00:15:12,790 --> 00:15:16,171
لملف قالب مكونات تفاصيل الطبق أيضا.

183
00:15:16,171 --> 00:15:19,435
لذا، هناك

184
00:15:19,435 --> 00:15:22,823
اسمحوا لي أن المضي قدما وإدراج هذا الرمز هنا.

185
00:15:22,823 --> 00:15:26,130
لذلك نرى أنه إذا لم يكن ErMess فارغًا،

186
00:15:26,130 --> 00:15:30,838
فسيتم عرض هذا الخطأ في العرض هناك.

187
00:15:30,838 --> 00:15:31,938
الآن نفس الشيء،

188
00:15:31,938 --> 00:15:36,502
والذهاب إلى مكون المنزل نحن بحاجة للذهاب من خلال نفس الإجراء.

189
00:15:36,502 --> 00:15:40,688
الآن داخل مكون المنزل، بالطبع، لدينا طبق، ترقية، وقائد.

190
00:15:40,688 --> 00:15:47,625
لذلك أنا ذاهب لتحديد منفصلة، سلاسل

191
00:15:47,625 --> 00:15:53,169
لكل واحد منهم لأن الخطأ يمكن أن تنشأ من أي واحد من الثلاثة.

192
00:15:53,169 --> 00:15:57,927
الآن نحن نتعامل فقط مع الطبق الذي يتم جلبه من جانب الخادم

193
00:15:57,927 --> 00:16:04,000
الاثنان المتبقيان سأتوقع منك أن تفعل ذلك كجزء من المهمة النهائية

194
00:16:04,000 --> 00:16:10,252
لذلك سنقوم، سأقول سلسلة إرميسي الطبق ومن ثم النزول إلى التعليمات البرمجية هنا.

195
00:16:10,252 --> 00:16:13,630
وفي الشفرة هنا،

196
00:16:13,630 --> 00:16:18,146
سنقول ببساطة خطأ.

197
00:16:18,146 --> 00:16:23,925
هذا الطبق إرميسي = أي

198
00:16:23,925 --> 00:16:30,130
إرميسي، هذا كل شيء.

199
00:16:30,130 --> 00:16:35,036
وبالمثل، قم بتحديث ملفات قالب المكونات الرئيسية.

200
00:16:35,036 --> 00:16:40,215
والذهاب إلى ملف قالب مكونات المنزل،

201
00:16:40,215 --> 00:16:45,392
ونحن نرى أن لدينا سلة طبق المعروضة هناك،

202
00:16:45,392 --> 00:16:50,461
حتى الآن لهذا واحد يجب أن أقول أو طبق إرميس.

203
00:16:50,461 --> 00:16:55,738
ثم، أسفل هنا، وسوف تشمل التعليمات البرمجية

204
00:16:55,738 --> 00:17:00,648
التي قمت بنسخها من مكون القائمة،

205
00:17:00,648 --> 00:17:04,600
ومن ثم قمت بتحديثه إلى طبق إرميس هنا.

206
00:17:04,600 --> 00:17:11,957
وأيضًا، قم بتحديث هذا إلى DisherrMess هنا، هذا كل شيء.

207
00:17:11,957 --> 00:17:14,113
دعونا حفظ التغييرات.

208
00:17:14,113 --> 00:17:18,823
الذهاب إلى المتصفح، ترى أن كل شيء يعمل تماما كما كان من قبل.

209
00:17:18,823 --> 00:17:24,249
المنزل، مكون القائمة وأيضا عنصر التفاصيل طبق دون أي مشكلة.

210
00:17:24,249 --> 00:17:27,498
والسؤال الآن هو، كيف نسبب أخطاء؟

211
00:17:27,498 --> 00:17:35,566
لتسبب الأخطاء، إحدى الطرق الممكنة التي يمكننا التعامل معها هي أننا نذهب

212
00:17:35,566 --> 00:17:40,961
والبحث عن معلومات غير موجودة من الخادم.

213
00:17:40,961 --> 00:17:45,865
اسمحوا لي أن أذهب إلى خدمة الطبق ثم يسبب

214
00:17:45,865 --> 00:17:51,240
مشكلتي الأولى في ديشسرفيس هنا.

215
00:17:51,240 --> 00:17:55,460
لذلك بالنسبة للطبق المميز بدلا من الأطباق، اسمحوا لي أن أرتكب خطأ

216
00:17:55,460 --> 00:17:59,470
وأقول ديشيس ثم حفظ التغيير.

217
00:17:59,470 --> 00:18:04,160
من الواضح أن هذا يعني أن عنوان url هذا غير موجود.

218
00:18:04,160 --> 00:18:07,482
لذا، ماذا سيحدث إذا كان الوصول إلى الخادم؟

219
00:18:07,482 --> 00:18:11,514
الذهاب إلى المتصفح عندما ننتقل الآن،

220
00:18:11,514 --> 00:18:16,504
ترى أن الطبق لا يتم عرضه هنا.

221
00:18:16,504 --> 00:18:19,570
وتقول هنا خطأ 404 لم يتم العثور عليها.

222
00:18:19,570 --> 00:18:24,170
وذلك لأننا نحاول الوصول إلى معلومات الطبق

223
00:18:24,170 --> 00:18:28,424
في عنوان URL غير موجود على جانب الخادم.

224
00:18:28,424 --> 00:18:32,289
لذلك ترى كيف يتم عرض رسالة الخطأ هنا.

225
00:18:32,289 --> 00:18:36,172
بالطبع، يمكنك أن تكون أكثر نزوة والقيام بالمزيد من العمل حول هذا ومن

226
00:18:36,172 --> 00:18:39,460
ثم عرض رسالة الخطأ بطريقة أكثر معنى.

227
00:18:39,460 --> 00:18:44,750
ولكن يتم تمييز المبدأ الأساسي هنا قائلا أنه

228
00:18:44,750 --> 00:18:50,357
يمكنك إظهار رسالة خطأ إذا لم يتم تنفيذ شيء بشكل صحيح

229
00:18:50,357 --> 00:18:56,194
عند محاولة الوصول إلى المعلومات من جانب الخادم الخاص بك.

230
00:18:56,194 --> 00:19:02,373
بالطبع، هذا خطأ تم إنشاؤه بشكل مصطنع في طلبي.

231
00:19:02,373 --> 00:19:07,020
للتسبب في نوع آخر من الخطأ، لقد ذهبت إلى نافذة المحطة الطرفية الخاصة بي

232
00:19:07,020 --> 00:19:12,295
ثم إيقاف تشغيل الخادم لمعرفة ما سيفعله تطبيق Angular الخاص بي في هذه الحالة.

233
00:19:12,295 --> 00:19:15,267
لذلك بعد إيقاف تشغيل الخادم،

234
00:19:15,267 --> 00:19:20,330
دعونا نرى ما سيعرض المكون الرئيسي في وجهة نظره.

235
00:19:21,830 --> 00:19:26,620
لذا، فانتقل إلى المكون الرئيسي، نرى الآن أنه نظرًا لأن

236
00:19:26,620 --> 00:19:31,330
تطبيقي Angular غير قادر على الوصول إلى الخادم، فقد تسبب في حدوث خطأ مرة أخرى.

237
00:19:31,330 --> 00:19:37,450
ثم يظهر هذه السلسلة هناك للإشارة إلى حدوث بعض الأخطاء.

238
00:19:37,450 --> 00:19:40,560
بالطبع، هذه سلسلة خفية،

239
00:19:40,560 --> 00:19:45,010
لا تنقل أي شيء ذي مغزى حول مصدر الخطأ.

240
00:19:45,010 --> 00:19:52,420
ولكن هذا كل ما يمكننا الحصول على محاولة للوصول إلى الخادم في هذا التطبيق.

241
00:19:52,420 --> 00:19:56,260
نفس الشيء، إذا ذهبت إلى القائمة، سترى نفس النوع من الشيء الذي يتم

242
00:19:56,260 --> 00:19:59,010
عرضه، لأن الخادم غير متوفر، وبالتالي

243
00:19:59,010 --> 00:20:02,150
لا يمكن جلب معلومات الطبق من الخادم.

244
00:20:02,150 --> 00:20:05,110
مع هذا نكمل هذا التمرين.

245
00:20:05,110 --> 00:20:07,660
في هذا التمرين، تعلمنا كيفية التعامل مع

246
00:20:07,660 --> 00:20:13,040
الأخطاء التي تنشأ أثناء اتصال خادم العميل في تطبيق Angular الخاص بنا.

247
00:20:13,040 --> 00:20:18,333
هذا هو الوقت المناسب بالنسبة لك للقيام git الالتزام مع الرسالة http الجزء الثاني.

248
00:20:18,333 --> 00:20:24,225
[ موسيقى]