Kata pengantar
Di node.js, ketika kesalahan terjadi dalam fungsi panggilan balik, seluruh proses akan macet, mempengaruhi pelaksanaan kode selanjutnya.
Node.js menangani dengan cara ini karena ketika kesalahan yang tidak tertulis terjadi, status proses tidak pasti. Itu tidak akan bekerja dengan baik setelah itu. Jika kesalahan tidak pernah diproses, kesalahan tak terduga akan dilemparkan, yang tidak kondusif untuk debugging.
Ada dua cara utama untuk mencegah pemblokiran proses yang disebabkan oleh kesalahan:
1. Cobalah tangkapan
try-catch memungkinkan pengecualian dan memungkinkan kode untuk melanjutkan eksekusi:
Misalnya:
Ketika fungsi melakukan kesalahan, kode berhenti mengeksekusi:
(function () {var a = 0; a (); console.log ("Get here."); // tidak dieksekusi}) (); Setelah menggunakan try-catch untuk pemrosesan kesalahan, kode masih dapat dieksekusi:
(function () {var a = 0; coba {a ();} catch (e) {console.log (e);} console.log ("dapatkan di sini."); // Dapatkan di sini.}) ();TRY-Catch tidak dapat menangkap kesalahan fungsi eksekusi di masa depan
Tidak mungkin untuk menangkap kesalahan yang dilemparkan oleh fungsi yang hanya dieksekusi di masa depan. Ini akan melempar pengecualian yang tidak tertulis secara langsung, dan blok kode catch tidak akan pernah dieksekusi:
coba {setTimeout (function () {throw new error ("here");}, 10);} catch (e) {console.log (e);}Inilah sebabnya di Node.js, tauge kacang ditangani dengan benar pada setiap langkah.
Tambahkan penangan uncatchexception
Jika prosesor uncatchException ditambahkan, proses tidak akan keluar ketika fungsi melempar kesalahan.
process.on ("uncatchexception", function (e) {console.log (e); process.exit (1);});Meringkaskan
Di atas adalah semua cara untuk mencegah pemblokiran proses oleh kesalahan di Node.js. Saya harap ini akan membantu semua orang menggunakan Node.js.