Penanganan Kesalahan mengacu pada bagaimana Express menangkap dan memproses kesalahan yang terjadi baik secara sinkron maupun asinkron. Express hadir dengan penangan kesalahan default sehingga Anda tidak perlu menulis sendiri untuk memulai Show Penting untuk memastikan bahwa Express menangkap semua kesalahan yang terjadi saat menjalankan penangan rute dan middleware Kesalahan yang terjadi pada kode sinkron di dalam route handler dan middleware tidak memerlukan kerja ekstra. Jika kode sinkron melontarkan kesalahan, Express akan menangkap dan memprosesnya. Misalnya
Untuk kesalahan yang dikembalikan dari fungsi asinkron yang dipanggil oleh penangan rute dan middleware, Anda harus meneruskannya ke fungsi 5, tempat Express akan menangkap dan memprosesnya. Misalnya________satu_______Dimulai dengan Express 5, route handler dan middleware yang mengembalikan Promise akan memanggil _6 secara otomatis saat mereka menolak atau melontarkan kesalahan. Misalnya _Jika _7 melempar kesalahan atau menolak, _8 akan dipanggil dengan kesalahan yang dilemparkan atau nilai yang ditolak. Jika tidak ada nilai yang ditolak diberikan, _8 akan dipanggil dengan objek Error default yang disediakan oleh router ExpressJika Anda meneruskan apa pun ke fungsi _5 (kecuali string _1), Express menganggap permintaan saat ini sebagai kesalahan dan akan melewatkan fungsi perutean dan middleware penanganan non-kesalahan yang tersisaJika panggilan balik secara berurutan tidak memberikan data, hanya kesalahan, Anda dapat menyederhanakan kode ini sebagai berikut
Dalam contoh di atas _8 disediakan sebagai panggilan balik untuk 3, yang disebut dengan atau tanpa kesalahan. Jika tidak ada kesalahan, penangan kedua dijalankan, jika tidak, Express akan menangkap dan memproses kesalahan tersebutAnda harus menangkap kesalahan yang terjadi dalam kode asinkron yang dipanggil oleh penangan rute atau middleware dan meneruskannya ke Express untuk diproses. Misalnya
Contoh di atas menggunakan blok _4 untuk menangkap kesalahan dalam kode asinkron dan meneruskannya ke Express. Jika 4 blok dihilangkan, Express tidak akan menangkap kesalahan karena itu bukan bagian dari kode penangan sinkronGunakan janji untuk menghindari overhead blok 4 atau saat menggunakan fungsi yang mengembalikan janji. Misalnya
Karena janji secara otomatis menangkap kesalahan sinkron dan janji yang ditolak, Anda cukup memberikan _8 sebagai penangan tangkapan terakhir dan Ekspres akan menangkap kesalahan, karena penangan tangkapan diberi kesalahan sebagai argumen pertamaAnda juga bisa menggunakan rantai penangan untuk mengandalkan penangkapan kesalahan sinkron, dengan mereduksi kode asinkron menjadi sesuatu yang sepele. Misalnya
Contoh di atas memiliki beberapa pernyataan sepele dari panggilan 8. Jika _8 menyebabkan kesalahan, maka kesalahan akan diteruskan ke Express, jika tidak, Anda akan segera kembali ke dunia penanganan kesalahan sinkron di penangan berikutnya dalam rangkaian. Kemudian, contoh di atas mencoba mengolah data. Jika ini gagal maka penangan kesalahan sinkron akan menangkapnya. Jika Anda telah melakukan pemrosesan ini di dalam callback _ 8 maka aplikasi mungkin akan keluar dan penangan kesalahan Express tidak akan berjalanApapun metode yang Anda gunakan, jika Anda ingin penangan kesalahan Express dipanggil dan aplikasi bertahan, Anda harus memastikan bahwa Express menerima kesalahan Penangan kesalahan defaultExpress hadir dengan penangan kesalahan bawaan yang menangani setiap kesalahan yang mungkin ditemui di aplikasi. Fungsi middleware penanganan kesalahan default ini ditambahkan di akhir tumpukan fungsi middleware Jika Anda meneruskan kesalahan ke _5 dan Anda tidak menanganinya dalam penangan kesalahan khusus, itu akan ditangani oleh penangan kesalahan bawaan; . Pelacakan tumpukan tidak termasuk dalam lingkungan produksiSetel variabel lingkungan _2 ke 3, untuk menjalankan aplikasi dalam mode produksiKetika kesalahan ditulis, informasi berikut ditambahkan ke respons
Jika Anda memanggil 5 dengan kesalahan setelah Anda mulai menulis respons (misalnya, jika Anda mengalami kesalahan saat mengalirkan respons ke klien), penangan kesalahan default Express akan menutup koneksi dan menggagalkan permintaanJadi, saat Anda menambahkan penangan kesalahan khusus, Anda harus mendelegasikan ke penangan kesalahan Express default, saat header telah dikirim ke klien
Perhatikan bahwa penangan kesalahan default dapat dipicu jika Anda memanggil 5 dengan kesalahan dalam kode Anda lebih dari sekali, bahkan jika middleware penanganan kesalahan khusus sudah adaMenulis penangan kesalahanDefinisikan fungsi middleware penanganan kesalahan dengan cara yang sama seperti fungsi middleware lainnya, kecuali fungsi penanganan kesalahan memiliki empat argumen, bukan tiga. 2. Misalnya
Anda menentukan middleware penanganan kesalahan terakhir, setelah 3 lainnya dan merutekan panggilan;
Respons dari dalam fungsi middleware bisa dalam format apa pun, seperti halaman kesalahan HTML, pesan sederhana, atau string JSON Untuk tujuan organisasi (dan kerangka tingkat yang lebih tinggi), Anda dapat menentukan beberapa fungsi middleware penanganan kesalahan, seperti yang Anda lakukan dengan fungsi middleware biasa. Misalnya, untuk menentukan penangan kesalahan untuk permintaan yang dibuat dengan menggunakan 4 dan yang tidak _0Dalam contoh ini, _5 generik mungkin menulis permintaan dan informasi kesalahan ke 6, misalnya _1Juga dalam contoh ini, 7 didefinisikan sebagai berikut; Perhatikan bahwa saat tidak memanggil "selanjutnya" dalam fungsi penanganan kesalahan, Anda bertanggung jawab untuk menulis (dan mengakhiri) respons. Jika tidak, permintaan tersebut akan "digantung" dan tidak memenuhi syarat untuk pengumpulan sampah _2Terapkan fungsi “catch-all” ________13______8 sebagai berikut (misalnya) _3Jika Anda memiliki pengendali rute dengan beberapa fungsi panggilan balik, Anda dapat menggunakan parameter 9 untuk melompat ke pengendali rute berikutnya. Misalnya _4Dalam contoh ini, penangan _0 akan dilewati tetapi penangan yang tersisa di _1 untuk 2 akan terus dieksekusiPanggilan ke 5 dan 4 menunjukkan bahwa penangan saat ini selesai dan dalam keadaan apa. 4 akan melewatkan semua penangan yang tersisa dalam rantai kecuali yang diatur untuk menangani kesalahan seperti yang dijelaskan di atas
Bagaimana wajah membuat penanganan kesalahan yang baik?Face Membuat Error Handling yang Baik . Gunakan bahasa yang mudah dipahami oleh pengguna Hindari kata-kata seperti. boneka buruk dll menghindari kalimat perintah FAQ (Pertanyaan yang Sering Diajukan) Mengoptimalkan dan memanfaatkan fungsi undo redo dan cancel berbagai macam model respon Validasi masukan. / Mengapa menggunakan try catch?Tujuan dari blok try - catch adalah menangkap dan pegangan yang dihasilkan oleh kode kerja.
Kapan harus menggunakan try catch?Untuk menangani error di Java, digunakan sebuah statement yang bernama try . tangkap . Statement tersebut digunakan untuk mengurung eksekusi yang menampilkan error dan dapat membuat program tetap berjalan tanpa dihentikan secara langsung.
Apa yang Anda ketahui tentang exception handling jelaskan dan berikan contohnya?Exception Handling merupakan mekanisme yang paling diperlukan dalam menangani error yang terjadi pada saat runtime (program berjalan) atau yang lebih dikenal dengan sebutan runtime error . Secara umum, adanya error/error yang terjadi pada program pada saat runtime dapat menyebabkan program berhenti atau hang. |