مقدمة
في node.js ، عندما يحدث خطأ في وظيفة رد الاتصال ، ستعطل العملية بأكملها ، مما يؤثر على تنفيذ الكود اللاحق.
تعامل Node.js بهذه الطريقة لأنه عندما يحدث خطأ غير معلوم ، فإن حالة العملية غير مؤكدة. لن يعمل بشكل صحيح بعد ذلك. إذا لم تتم معالجة الخطأ أبدًا ، فسيتم إلقاء أخطاء غير متوقعة ، وهو ما لا يفضي إلى تصحيح الأخطاء.
هناك طريقتان رئيسيتان لمنع حظر العملية الناجم عن الأخطاء:
1. تجرب
تتيح try-catch التقاط الاستثناء وتسمح للرمز بمتابعة التنفيذ:
على سبيل المثال:
عندما ترمي الوظيفة خطأ ، يتوقف الكود عن التنفيذ:
(function () {var a = 0 ؛ a () ؛ console.log ("get here.") ؛ // not exered}) () ؛ بعد استخدام try-catch لمعالجة الأخطاء ، لا يزال من الممكن تنفيذ الرمز:
(function () {var a = 0 ؛ try {a () ؛} catch (e) {console.log (e) ؛} console.log ("get here.") ؛ // get here.}) () ؛لا يمكن لـ Try-Catch التقاط أخطاء دالة التنفيذ المستقبلية
من المستحيل التقاط الأخطاء التي ألقاها وظائف يتم تنفيذها فقط في المستقبل. سيؤدي ذلك إلى إلقاء استثناء غير معلوم مباشرة ، ولن يتم تنفيذ كتلة رمز catch :
جرب {setTimeOut (function () {رمي خطأ جديد ("هنا") ؛} ، 10) ؛} catch (e) {console.log (e) ؛}هذا هو السبب في Node.js ، يتم التعامل مع براعم الفول بشكل صحيح في كل خطوة.
إضافة معالج uncatchException
إذا تمت إضافة معالج uncatchException ، فلن تخرج العملية عندما ترمي الوظيفة خطأ.
Process.on ("uncatchException" ، الدالة (e) {console.log (e) ؛ process.exit (1) ؛}) ؛لخص
ما سبق هو جميع الطرق لمنع حظر العملية من خلال الأخطاء في Node.js. آمل أن يكون من المفيد للجميع استخدام Node.js.