﻿1
00:00:01,320 --> 00:00:03,670
‫Instruktur: Jadi, sampai saat ini dalam kursus

2
00:00:03,670 --> 00:00:05,430
‫kami belum benar-benar menangani

3
00:00:05,430 --> 00:00:09,420
‫kesalahan dengan cara yang baik atau di tempat sentral dalam aplikasi kami.

4
00:00:09,420 --> 00:00:11,690
‫Apa yang kami lakukan hanyalah mengirim

5
00:00:11,690 --> 00:00:15,180
‫kembali pesan kesalahan sebagai JSON di setiap pengendali rute

6
00:00:15,180 --> 00:00:16,750
‫jika terjadi kesalahan.

7
00:00:16,750 --> 00:00:17,760
‫Benar?

8
00:00:17,760 --> 00:00:21,250
‫Jadi pada dasarnya itulah yang akan kita perbaiki di bagian ini.

9
00:00:21,250 --> 00:00:22,860
‫Tapi untuk saat ini, mari

10
00:00:22,860 --> 00:00:26,653
‫kita luangkan waktu sebentar untuk mendapatkan gambaran singkat tentang penanganan kesalahan di Express.

11
00:00:27,490 --> 00:00:29,700
‫Dan kita mulai dengan benar-benar

12
00:00:29,700 --> 00:00:32,550
‫membedakan antara dua jenis kesalahan yang dapat terjadi.

13
00:00:32,550 --> 00:00:35,660
‫Kesalahan operasional dan kesalahan pemrograman.

14
00:00:35,660 --> 00:00:38,060
‫Jadi, kesalahan operasional adalah masalah yang

15
00:00:38,060 --> 00:00:40,760
‫bisa kita prediksi pasti akan terjadi di beberapa

16
00:00:40,760 --> 00:00:42,480
‫titik di masa depan.

17
00:00:42,480 --> 00:00:45,500
‫Jadi kita hanya perlu menanganinya terlebih dahulu.

18
00:00:45,500 --> 00:00:48,430
‫Mereka tidak ada hubungannya dengan bug dalam kode kita.

19
00:00:48,430 --> 00:00:51,760
‫Sebaliknya, mereka bergantung pada pengguna, atau sistem,

20
00:00:51,760 --> 00:00:53,050
‫atau jaringan.

21
00:00:53,050 --> 00:00:57,320
‫Jadi, hal-hal seperti pengguna mengakses rute yang tidak valid, memasukkan

22
00:00:57,320 --> 00:01:01,430
‫data yang tidak valid, atau aplikasi yang gagal terhubung

23
00:01:01,430 --> 00:01:02,870
‫ke database.

24
00:01:02,870 --> 00:01:05,290
‫Semua ini adalah kesalahan operasional

25
00:01:05,290 --> 00:01:06,920
‫yang perlu kami

26
00:01:06,920 --> 00:01:10,440
‫tangani untuk mempersiapkan aplikasi kami untuk kasus ini.

27
00:01:10,440 --> 00:01:12,590
‫Anda juga akan melihat istilah,

28
00:01:12,590 --> 00:01:14,680
‫"pengecualian" digunakan sebagai pengganti

29
00:01:14,680 --> 00:01:17,200
‫kesalahan dan meskipun secara konseptual berbeda,

30
00:01:17,200 --> 00:01:19,290
‫banyak orang menggunakan istilah

31
00:01:19,290 --> 00:01:21,670
‫kesalahan dan pengecualian secara bergantian.

32
00:01:21,670 --> 00:01:23,370
‫Dan saya hanya akan

33
00:01:23,370 --> 00:01:26,860
‫menyebutnya, "kesalahan," dalam kursus ini juga untuk menghindari kebingungan.

34
00:01:26,860 --> 00:01:30,460
‫Bagaimanapun, di sisi lain, kami memiliki kesalahan pemrograman.

35
00:01:30,460 --> 00:01:32,800
‫Yang hanya bug yang kami pengembang

36
00:01:32,800 --> 00:01:34,810
‫perkenalkan ke dalam kode kami.

37
00:01:34,810 --> 00:01:37,010
‫Seperti, misalnya, mencoba membaca properti dari

38
00:01:37,010 --> 00:01:41,220
‫variabel yang tidak ditentukan, menggunakan menunggu tanpa asinkron, secara tidak

39
00:01:41,220 --> 00:01:46,070
‫sengaja menggunakan permintaan. permintaan alih-alih permintaan. body, atau banyak

40
00:01:46,070 --> 00:01:49,020
‫kesalahan lainnya, yang mungkin kita buat.

41
00:01:49,020 --> 00:01:51,530
‫Jadi, Anda tahu cara kerjanya, bukan?

42
00:01:51,530 --> 00:01:53,540
‫Dan mereka benar-benar tak

43
00:01:53,540 --> 00:01:56,810
‫terelakkan tetapi juga lebih sulit ditemukan dan ditangani.

44
00:01:56,810 --> 00:01:59,720
‫Oke, jadi, penting bagi Anda untuk memahami

45
00:01:59,720 --> 00:02:02,480
‫perbedaan penting antara kesalahan operasional dan

46
00:02:02,480 --> 00:02:04,230
‫kesalahan pemrograman ini.

47
00:02:04,230 --> 00:02:07,330
‫Jadi, ketika kita berbicara tentang penanganan kesalahan dengan Express,

48
00:02:07,330 --> 00:02:09,930
‫yang kita maksudkan hanyalah kesalahan operasional.

49
00:02:09,930 --> 00:02:11,890
‫Karena ini adalah yang

50
00:02:11,890 --> 00:02:15,650
‫mudah ditangkap dan ditangani dengan aplikasi Express kami.

51
00:02:15,650 --> 00:02:18,070
‫Dan Express sebenarnya hadir dengan penanganan kesalahan

52
00:02:18,070 --> 00:02:19,390
‫di luar kotak.

53
00:02:19,390 --> 00:02:21,160
‫Jadi, yang harus

54
00:02:21,160 --> 00:02:24,010
‫kita lakukan adalah menulis middleware penanganan kesalahan global

55
00:02:24,010 --> 00:02:26,090
‫express yang kemudian akan menangkap kesalahan

56
00:02:26,090 --> 00:02:28,050
‫yang datang dari seluruh aplikasi.

57
00:02:28,050 --> 00:02:31,260
‫Jadi, tidak peduli apakah itu kesalahan yang berasal dari

58
00:02:31,260 --> 00:02:34,950
‫penangan rute, atau validator model atau benar-benar, di tempat lain,

59
00:02:34,950 --> 00:02:37,240
‫tujuannya adalah agar semua kesalahan

60
00:02:37,240 --> 00:02:39,920
‫ini berakhir di satu middleware penanganan kesalahan pusat.

61
00:02:39,920 --> 00:02:43,610
‫Sehingga kami dapat mengirimkan respon yang baik kembali ke klien membiarkan

62
00:02:43,610 --> 00:02:45,510
‫mereka tahu apa yang terjadi.

63
00:02:45,510 --> 00:02:48,340
‫Jadi, sungguh, penanganan dalam kasus ini hanya

64
00:02:48,340 --> 00:02:52,040
‫berarti mengirim respons yang memberi tahu pengguna apa yang terjadi.

65
00:02:52,040 --> 00:02:55,050
‫Tetapi penanganan juga bisa berarti, dalam kasus

66
00:02:55,050 --> 00:02:58,220
‫lain, mencoba kembali operasi atau membuat server mogok,

67
00:02:58,220 --> 00:03:00,960
‫atau mengabaikan kesalahan sama sekali.

68
00:03:00,960 --> 00:03:03,980
‫Terkadang, itu hanya pilihan terbaik.

69
00:03:03,980 --> 00:03:07,470
‫Sekarang keindahan memiliki middleware penanganan kesalahan global

70
00:03:07,470 --> 00:03:10,830
‫adalah memungkinkan pemisahan masalah yang bagus.

71
00:03:10,830 --> 00:03:13,170
‫Jadi, kita tidak perlu khawatir tentang

72
00:03:13,170 --> 00:03:16,220
‫penanganan kesalahan tepat di logika bisnis kita atau pengontrol kita,

73
00:03:16,220 --> 00:03:18,750
‫atau benar-benar di mana saja di aplikasi kita.

74
00:03:18,750 --> 00:03:22,090
‫Kami hanya dapat mengirimkan kesalahan ke penangan kesalahan yang kemudian akan

75
00:03:22,090 --> 00:03:25,090
‫memutuskan apa yang harus dilakukan dengan mereka selanjutnya.

76
00:03:25,090 --> 00:03:26,340
‫Baiklah?

77
00:03:26,340 --> 00:03:28,170
‫Jadi, dengan semua yang

78
00:03:28,170 --> 00:03:30,463
‫dikatakan, sekarang mari kita mulai menerapkan ini.

