‫Instruktur: Jadi, sampai saat ini dalam kursus
‫kami belum benar-benar menangani
‫kesalahan dengan cara yang baik atau di tempat sentral dalam aplikasi kami.
‫Apa yang kami lakukan hanyalah mengirim
‫kembali pesan kesalahan sebagai JSON di setiap pengendali rute
‫jika terjadi kesalahan.
‫Benar?
‫Jadi pada dasarnya itulah yang akan kita perbaiki di bagian ini.
‫Tapi untuk saat ini, mari
‫kita luangkan waktu sebentar untuk mendapatkan gambaran singkat tentang penanganan kesalahan di Express.
‫Dan kita mulai dengan benar-benar
‫membedakan antara dua jenis kesalahan yang dapat terjadi.
‫Kesalahan operasional dan kesalahan pemrograman.
‫Jadi, kesalahan operasional adalah masalah yang
‫bisa kita prediksi pasti akan terjadi di beberapa
‫titik di masa depan.
‫Jadi kita hanya perlu menanganinya terlebih dahulu.
‫Mereka tidak ada hubungannya dengan bug dalam kode kita.
‫Sebaliknya, mereka bergantung pada pengguna, atau sistem,
‫atau jaringan.
‫Jadi, hal-hal seperti pengguna mengakses rute yang tidak valid, memasukkan
‫data yang tidak valid, atau aplikasi yang gagal terhubung
‫ke database.
‫Semua ini adalah kesalahan operasional
‫yang perlu kami
‫tangani untuk mempersiapkan aplikasi kami untuk kasus ini.
‫Anda juga akan melihat istilah,
‫"pengecualian" digunakan sebagai pengganti
‫kesalahan dan meskipun secara konseptual berbeda,
‫banyak orang menggunakan istilah
‫kesalahan dan pengecualian secara bergantian.
‫Dan saya hanya akan
‫menyebutnya, "kesalahan," dalam kursus ini juga untuk menghindari kebingungan.
‫Bagaimanapun, di sisi lain, kami memiliki kesalahan pemrograman.
‫Yang hanya bug yang kami pengembang
‫perkenalkan ke dalam kode kami.
‫Seperti, misalnya, mencoba membaca properti dari
‫variabel yang tidak ditentukan, menggunakan menunggu tanpa asinkron, secara tidak
‫sengaja menggunakan permintaan. permintaan alih-alih permintaan. body, atau banyak
‫kesalahan lainnya, yang mungkin kita buat.
‫Jadi, Anda tahu cara kerjanya, bukan?
‫Dan mereka benar-benar tak
‫terelakkan tetapi juga lebih sulit ditemukan dan ditangani.
‫Oke, jadi, penting bagi Anda untuk memahami
‫perbedaan penting antara kesalahan operasional dan
‫kesalahan pemrograman ini.
‫Jadi, ketika kita berbicara tentang penanganan kesalahan dengan Express,
‫yang kita maksudkan hanyalah kesalahan operasional.
‫Karena ini adalah yang
‫mudah ditangkap dan ditangani dengan aplikasi Express kami.
‫Dan Express sebenarnya hadir dengan penanganan kesalahan
‫di luar kotak.
‫Jadi, yang harus
‫kita lakukan adalah menulis middleware penanganan kesalahan global
‫express yang kemudian akan menangkap kesalahan
‫yang datang dari seluruh aplikasi.
‫Jadi, tidak peduli apakah itu kesalahan yang berasal dari
‫penangan rute, atau validator model atau benar-benar, di tempat lain,
‫tujuannya adalah agar semua kesalahan
‫ini berakhir di satu middleware penanganan kesalahan pusat.
‫Sehingga kami dapat mengirimkan respon yang baik kembali ke klien membiarkan
‫mereka tahu apa yang terjadi.
‫Jadi, sungguh, penanganan dalam kasus ini hanya
‫berarti mengirim respons yang memberi tahu pengguna apa yang terjadi.
‫Tetapi penanganan juga bisa berarti, dalam kasus
‫lain, mencoba kembali operasi atau membuat server mogok,
‫atau mengabaikan kesalahan sama sekali.
‫Terkadang, itu hanya pilihan terbaik.
‫Sekarang keindahan memiliki middleware penanganan kesalahan global
‫adalah memungkinkan pemisahan masalah yang bagus.
‫Jadi, kita tidak perlu khawatir tentang
‫penanganan kesalahan tepat di logika bisnis kita atau pengontrol kita,
‫atau benar-benar di mana saja di aplikasi kita.
‫Kami hanya dapat mengirimkan kesalahan ke penangan kesalahan yang kemudian akan
‫memutuskan apa yang harus dilakukan dengan mereka selanjutnya.
‫Baiklah?
‫Jadi, dengan semua yang
‫dikatakan, sekarang mari kita mulai menerapkan ini.