في 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 التقاط أخطاء دالة التنفيذ المستقبلية
من المستحيل التقاط الأخطاء التي ألقاها وظائف يتم تنفيذها فقط في المستقبل. سيؤدي ذلك إلى إلقاء استثناء غير معلوم مباشرة ، ولن يتم تنفيذ كتلة رمز الصيد:
جرب {setTimeOut (function () {رمي خطأ جديد ("هنا") ؛} ، 10) ؛} catch (e) {console.log (e) ؛}هذا هو السبب في Node.js ، يتم التعامل مع براعم الفول بشكل صحيح في كل خطوة.
إضافة معالج uncatchException
إذا تمت إضافة معالج UncatchException ، فلن تخرج العملية عندما ترمي الوظيفة خطأ.
Process.on ("uncatchException" ، الدالة (e) {console.log (e) ؛ process.exit (1) ؛}) ؛ما سبق هو طريقة منع حظر العملية في Node.js الناجم عن الأخطاء التي أدخلها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!