مقدمة مبتدئة مع أمثلة مفيدة

مقدمة مبتدئة مع أمثلة مفيدة

جافا سكريبت try catch هي أداة أساسية للتعامل مع الأخطاء والاستثناءات في الكود الخاص بك. إنه يوفر آلية للتعامل مع المواقف غير المتوقعة ومنع برنامجهم في الحادث. في هذا الدليل المبتدئ الشامل -سوف تتعامل مع التفاصيل الدقيقة لجافا سكريبت try...catch الآلية التي تمنحك فهمًا واضحًا لكيفية تعامل الأخطاء برشاقة مع أمثلة مفيدة. لنبدأ!

محاولة JavaScript Catch: مقدمة صديقة للمبتدئين مع أمثلة مفيدة

جدول المحتويات #

الحاجة إلى تجربة #

الأخطاء والأخطاء هي جزء لا مفر منه من البرمجة ، وجافا سكريبت ليست استثناء. تخيل أنك تقوم بإنشاء تطبيق ويب ، وفجأة تتعطل بسبب الإدخالات غير المتوقعة أو مشكلة الشبكة. محبط ، أليس كذلك؟ هناك الأقوياء try...catch يأتي البيان إلى إنقاذك!

ال try...catch البيان هو آلية أساسية لعلاج الأخطاء في جافا سكريبت. يمكنك تجنب أخطاء تشغيل الوقت ، وعدم الإطاحة بتطبيقك وتوفير المزيد من تجربة المستخدم السلس.

عندما بدأت البرمجة ، كنت تحت الافتراض الخاطئ بأنه يمكن استبداله بمحاولة إذا كنت مخطئًا في ذلك الوقت. في القسم التالي ، ستكتشف كيف تحاول التقاط وأخيراً العمل للحصول على نقطة مرئية للعرض.

كيف يعمل #

ال try catch تسبب التعليمات في JavaScript ذلك بتقسيم الكود إلى كتلتين رئيسيتين:

  1. جربه: تحتوي هذه الكتلة على الرمز الذي تريد تنفيذه. هذا هو القسم الذي يمكنك توقع أخطاء محتملة فيه. يمكن أن يؤدي جزء من الكود في هذا القسم إلى ارتكاب خطأ أو استثناء. لا يتم تشغيل الأشياء دائمًا كما هو متوقع ، خاصة إذا كان لديك مدخلات مستخدم أو استدعاء مورد خارجي مثل ملف أو واجهة برمجة تطبيقات خارجي. قد تكون واجهة برمجة التطبيقات خاطئة أدناه أو اسم الملف. في هذه الحالات ، تزدهر Node.js/JavaScript على الأخطاء التي يتم اكتشافها في الجزء التالي ، كتلة الصيد.

  2. كتلة الصيد: يتم تنفيذ هذه الكتلة فقط إذا كان هناك خطأ في المظهر try حاجز. هنا تعتني بالخطأ وتمنع برنامجك من السقوط. على سبيل المثال ، إذا قمت بإنشاء خطأ في الكتابة في اسم مجال واجهة برمجة التطبيقات المسمى ، فسيتم إنشاء هذا TypeError إذا كنت تستخدم الجلب. إذا لم تكن كتلة الصيد متوفرة ، فيمكنها قتل عملية Node.js أو عرض خطأ على وحدة التحكم في المتصفح.

اختياريا ، يمكنك إدراج كتلة ثالثة. finally:

  1. finally حاجز: يتم تنفيذ هذه الكتلة بغض النظر عما إذا كان قد حدث خطأ أم لا. يتم استخدامه لتنظيف الموارد أو تنفيذ الإجراءات التي يجب القيام بها وفقًا لما يحدث try و catch كتل. على سبيل المثال ، تكون هذه الكتلة مفيدة إذا قمت بإزالة اتصال قاعدة البيانات من مجموعة من الاتصالات. يمكنك استخدام الكود الخاص بك لتنفيذ معاملة قاعدة البيانات. إذا سارت الأمور على ما يرام ، فلن يصل التنفيذ أبدًا إلى جزء الصيد. ومع ذلك ، إذا ضربت الأمور المروحة ، ينتهي التنفيذ في جزء الصيد. الرمز في finally يتم تنفيذ الكتلة دائمًا بحيث يمكن استخدامها لنشر اتصال قاعدة البيانات مرة أخرى إلى التجمع ، بغض النظر عما إذا كان هناك خطأ أم لا.

فيما يلي مخطط تدفق بسيط يتم فيه شرح سير العمل بصريًا try catch finally Explanation (Mermaid.js – SVG إصدار):

جربه مع الصيد وأخيراً في رسم تخطيطي للتدفق

يمكن استخدام Try Catch مع كل من التزامن والرمز غير المتزامن في JavaScript. إذا كنت ترغب في التعرف ، وعد و Async عبر Sync ، رمز JavaScript Async ، يرجى قراءة منشور المدونة هذا. في القسم التالي ، ستكتشف رمز المزامنة مع Try -and -Catch -javaScript.

استخدم المحاولة

لنبدأ بمثال أساسي للاستخدام try catch مع رمز متزامن. التطبيق العام هو تحليل بيانات JSON التي يمكن أن تسجل خطأ إذا كانت علامة JSON غير صالحة ، لأن المثال تحت JSON يتم إبطاله عن قصد:

const jsonString = '{"key: "value"}';

try {
const json = JSON.parse(jsonString);
console.info(json.key);
} catch (err) {
console.error('Error parsing JSON string: ', err.message);
console.error('Error stack: ', err.stack);
console.error('Error name: ', err.name);
console.info(err instanceof SyntaxError);
}

الخطأ في JSON string هو أن المفتاح يسمى key ليس لديه إغلاق لذلك سيؤدي هذا دائمًا إلى واحد SyntaxError إذا JSON.parse تمت تجربته على سلسلة JSON المحددة. إذا قمت بحفظ الرمز المذكور أعلاه sync.js وقم بتنفيذها باستخدام Node.js (أو قم بتنفيذها على وحدة التحكم في المتصفح). سوف يؤدي إلى هذا ::

حاول التقاط نسخة المزامنة في JavaScript - Edition

دعونا نحلل ما حدث هنا. أولاً قمت بتعيين سلسلة JSON غير صالحة في const مُسَمًّى jsonString. التالي JSON.parse. ثم حاول تسجيلها key لم يتحقق هذا الخط كخط هذا الكائن JSON.parse يلقي خطأ.

في كتلة الصيد ، ترتدي الخطأ بالاسم errثم قم بتسجيل رسالة الخطأ كخطأ في وحدة التحكم. ثم قم بتسجيل المكدس واسم الخطأ كخطأ في وحدة التحكم. في النهاية ، تحقق مما إذا كان الخطأ هو مثيل من النوع SyntaxError سوف يؤدي ذلك إلى صحيح.

إذا كنت تريد أن تصل الرمز أبدًا إلى كتلة الصيد التي يمكنك استخدامها const jsonString = '{"key”: "value"}'; كما الخط الأول. في الجزء التالي ، سترى مثالًا على JavaScript غير المتزامن مع Async و Darted.

استخدم المحاولة

يتضمن الكود غير المتزامن في JavaScript عمليات لا يتم تنفيذها على الفور.
كيفية استدعاء البيانات من API. يستخدم try catch مع رمز غير متزامن
يتطلب فهم كيفية عمل الوعود. يمكنك أيضًا القراءة عن .catch وقراءة و .finaly يمكن إضافة هذا إلى الوعد. ولكن في الوقت الحاضر ، من الشائع استخدام Async promise().catch().finally() بناء الجملة. وبالتالي فإن الكود التالي مع الأم fetch API لإخراج بعض المستخدمين ولكن مع منعطف (خطأ في القراءة):

async function getUser() {
try {
const response = await fetch('https://jsonplaceholder.typicode.com1/users/1');
console.log('User data:', await response.json());
} catch (err) {
console.error('Error fetching user:', err.message);
console.error('Error stack: ', err.stack);
console.error('Error name: ', err.name);
console.info(err instanceof TypeError);
}
}

getUser();

لتوضيح ذلك مسبقًا ، كان بإمكانهم استخدامه [IIFE]((من المتوقع مع Async للحفاظ على الأشياء أعلاه ، يستخدم وظيفة تسمي getUser.

ال getUser تبدأ الوظيفة غير المتزامنة مع الحصول على مكالمة جلب. المشكلة هي أن اسم المجال خاطئ. لديها إضافية 1 بعد المرفقة .com هذا يعني دائمًا أن اسم المجال لم يتم حله. وهذا يعني أن التنفيذ لن يصل أبدًا إلى السطر الذي يتم فيه تسجيل بيانات المستخدم.

سيكون دائما في الأرض catch قطاع وتسجيل رسالة الخطأ ثم المكدس والاسم. ثم يتم التحقق مما إذا كان مثيل الخطأ TypeError سوف يؤدي ذلك إلى صحيح. يمكنك حفظ الرمز المذكور أعلاه كما async.js وركض مع العقدة 18.+ تمت إضافة المكالمة الأصلية إلى Node.js بدون علامة تجريبية 18.0.0. يصبح:

حاول التقاط تنفيذ غير متزامن في JavaScript - Edition

يمكنك أيضًا القيام بذلك على وحدة التحكم في متصفحك ، والتي توفر نفس النتيجة أعلاه. في القسم التالي ، ستكتشف كيفية حظر الهاتف الخلوي أخيرًا ، والذي يتم تنفيذه دائمًا بغض النظر عن حدث الخطأ الذي يحدث.

حاول الصيد وأخيراً #

جافا سكريبت try...catch يدعم أيضًا اختياري finally حاجز. ال finally يتم تنفيذ الكتلة دائمًا ، بغض النظر عما إذا كان حدث خطأ أم لا. هذا مفيد لمهام التنظيف أو الإغلاق. أدناه هو نفس المثال لما ورد أعلاه JSON.parse مع الخطأ يضيف أ finally كتلة في النهاية:

const jsonString = '{"key: "value"}';

try {
const json = JSON.parse(jsonString);
console.info(json.key);
} catch (err) {
console.error('Error parsing JSON string: ', err.message);
console.error('Error stack: ', err.stack);
console.error('Error name: ', err.name);
console.info(err instanceof SyntaxError);
} finally {
console.info('This will always execute');
}

إذا قمت بحفظ هذا الملف كـ sync-finally.js وقم بتنفيذها باستخدام Node.js ، سيؤدي ما يلي:

حاول أخيرًا التقاط التنفيذ في JavaScript -

الفرق الرئيسي هنا هو ذلك finally جزء مع الخطأ. حتى لو لم يكن هناك خطأ في ذلك finally سوف تعمل الكتلة دائما. ال finally يمكن أيضًا استخدام الكتلة في async مثال رمز مع async-await. في مستودع github هذا ، ستجد جميع اختبارات الكود. إذا كنت سعيدًا باستخدام Axios بدلاً من الجلب ، فستجد مثالًا مشابهًا مع Axios Timeout.

يمكنك أيضًا لف الخطأ أو الاستثناء في استثناءك المخصص. على سبيل المثال ، إذا قامت واجهة برمجة التطبيقات بإرجاع رمز خطأ معين لكلمة مرور خاطئة مثل الرمز 5522 ثم يمكنك التحقق مما إذا كان الخطأ يحتوي على هذا الرمز ولفه في مستخدم محدد أكثر WrongPasswordError وإعادة التفكير في ذلك. يمكنك استخدامها throw الكلمة الرئيسية لرمي خطأك أو استثناء. يمكن أن تكون هذه مشكلة لنشر مدونة آخر.

دبلوم #

JavaScripts try catch البيان هو أداة لا تقدر بثمن لعلاج الأخطاء بأمان. إنه يوفر طريقة منظمة لتوقع وإدارة الاستثناءات لمنع الكود الخاص بك من السقوط وضمان تجربة مستخدم أفضل.

من خلال فهم مبادئ try catch وإذا كنت تستخدمك بعناية ، فيمكنك إنشاء تطبيقات JavaScript قوية وموثوقة. تذكر استخدام ذلك finally منعه للتنظيف الأساسي ولا تخجل من الاستخدام try catch سواء في الكود المتزامن وغير المتزامن. في هذا الدليل ، تعلمت كيفية استخدام Try … catch واستخدمت أخيرًا في المزامنة ورمز JavaScript غير المتزامن مع أمثلة مفيدة.

تدرب وفحص السيناريوهات المختلفة لتصبح علاجات الأخطاء لتصبح سيد إدارة الأخطاء في جافا سكريبت. عناق قوة try catch أخيرًا ، تعاملت الكود الخاص بك بالأناقة والمرونة. ترميز سعيد!

المصدر المرجعي

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *