معالجة الأخطاء
امتى نستخدم معالجات الأخطاء
يمكنك استخدام معالجات الأخطاء في أي وضع يولد احتمال لحدوت خطأ يوقف تنفيذ البرنامج سواء كان ذلك الخطأً منوقما أم غير
متوقع. وبشكل عام تستخدم معالجات الأخطاء لإدارة أحدات خارجية قد تئر على مسار تنفيذ البرتامج كفئل في الوصول للشبكة أو فرص
مضغوط غير موجود أو طعة أو ماسج ضوئي غير مشغلين مثلا ومن هذه المشاكل المحتملة الني تحتاج إلى معالجات أخطاء:
شبكةانترنت مشكلة في المخدمات أو تجهيزات الاتصال
٠ قواعد بياتات عدم القدزة على إنشاء اتصل أو تنفيذ استحلام أو أن قاعدة البياتات تعيد خطأما
سواقات الأقراصض قرص غير مهنا أو مهيا بصورة غير صحيحة أو قرص قال للإزالة غير مدخل بشكل جيد
مشاكل المسارات
مشاكل الطابعة طلحة مطفةٌ أو بدون ورق أو غير متوفرة لسبب ما
م مشاكل برمجيات مكونات أو مكتنات يستمد عليها ملف التنفيد ناقصة أو غير متصنية بسنورة صنحبحة أو
وجود تحارض أو عدم توافقية بين بعض المكتبات
مشاكل أمان البرنامج بحاول العام يعملية غير مسموحة أو أن المستخدم الذي بشغل البرنامج لا بمتلك
مشاكل ذاكرة مصادر نظام غير كافبة
مشاكل الحافظة مشاكل في تبادل البيائات مع حافظة ويندوز
مشاكل منطقية مشاكل صيغة أو مشاكل منطعية لم يستطع المترجم كشفها
كتلة ث0 ... 7و1
كثلة الكود التي تستخدم لمعالجة أخطاء زمن التنيذ تدعى 6840 ... /70 حيت يمكنك كتابة عبارة 789 ضمن إجراء معالجة
الحدت قبل الكود الذي تتوقع أن يولد مشكلة وتليها مباشرة عبارة 68460 فإن حدت خطأً فى زمن التنفيذ فيتم تنفيذ مجموعة من العبارات.
6846 داخل بعضها و تكون الصبغة العامة لكثلة (ا686 .. /717
العبارات الممكن أن نولد خطاً
بإللقمط
حيث تشكل عبارة /701 بداية تحريف معالجة الخطأً فى حين أن العبارات /70 و 684600 و /70 ل00ع هي عبارات إجبارية والعبارة رااهضاع
أختيارية. ويدعى الكود المتواجد بين عبارتى /(7 و 69160 بالكود المحمى بسيب أن أخطاء زمن التنفيذ المتولدة ضمن ذلك الكود لا تتسبب
فى توقف البرنامج عن العمل
الأخطاء التي قد تحدت فى زمن التنفيذ
نمس
(07 عحاعل م علفتة عط تتوص 56و ع130:)1ع114
الغرض 1217
الأخطاء لكل خطأً زمن تنفيذ بحدت في البرنامج ومع ذلك هنلك طرق أحدت لإدارة الأخطاء في الفربموورك متل الغعرض - 1600م568
القوي وتشكل الخصائص 000082 502.1 و 07.0850:104100ع الخصائص الأكثر إفلدة لتحديد أخطاء زمن التنفخ فالخلسية مع 2.1101000 :5
تحتوي على رقم الخطأً الخاص بآخر خطأً زمن تنفيذ حدث مؤخرا والخاصنية 8600م2.085001:ع تحتوي على رسلة قصيرة تطلق رقم
المستخدم رسالة عن كيف يمكن أن يتصرف في حالة حدوت خطأً معين كما يمكتك تفريع الخطأً بواسطة الطب +0188. :8 ولكن إن
استخدمت الغرض مع داخل كثلة 0846 فيصبح من غير الضروري تفريع الخطأ لأنه لا بثم الدخول إلى كئلة 6880١ إلا إن حدث خطأً
والمتل التالى يتحرف على عدة أخطاء زمن التنفيذ باستخدام العرض :©
مومط أمنوط أمل ع1 12" 53 - ستل شط معطلا معنم
(" متتل فتك اعمة مسمسطلهم 6ا130:)701166ع115
نعل
العبارة 117 11ج
وهى تستخدم للخروج من كثلة 69568 ... /70 بشكل مشلبه للعبارات 0ع 01 و 5انن5 6ع المكوفة حيبت باستخدامها تخرج كل
6ع 1.1010 للمتلة سمط
("مسط نعم هع0:151") علاتتسمصتل ومسننطع مط سمتكلية
نعل
مقارنة معالجات الأخطاء مع التقنيات الدفاعية للبرمجة
استخدام معالجات الأخطاء ليسث الطريقة الوحيدة لحماية برنامجك من حدوث أخطاء زمن التنفيذ فقطعة الكود الثالية تستخدم
الطريفة 615:.ع1اع في مجال الأسماء 5:/91800.10 فى مكتبة فئات الفريموورك للتأكد من أن الملف موجود فلا قل محاولة ففحه
في الكود السابق لا تعتبر عبارة م معالج خطاً حقيقى لأنها لا تستطيع منع خطاً زمن التنفيذ من إيقاف تنفيذ البرنامج وبدلا عن ذلك فطريقة
التحفق هذه الى يستخدمها بعض المبرمجين تدعى بالبرمجة الدفاعية. فهي تستخدم وظيفة مفيدة في مكتبة فئات العريموورك للأكد من العملية
القى ستجري على الملف قبل محاولة ففحه الفعلية. وفى هذه الحالة خاصة فالتأكد من وجود الملف باستخدام الطريفة 16.0115 هي أسرع
من انقظار فبجول بايزيك لإطلاق الاستقناء واستحادته من خطأً زمن التتفيذ باستخدام معالجات الأخطاء.
يجب عليك استخدام مزيج من الطريين في كودك حيبت تكون طريفة البرمجة الدفاعبة هي الأكتر فمالية لمعالجة المشاكل المحثملة. وكما
ذكرنا سلقا فالطريقة واونرع.عازع أسرع من بلوك 68460 ... /70 لمعالجة الأخطاء لذا فمن المنطقي استخدام تغنية البرمجة الدفاعية من أجل
الأخطاء النى تتوقع حدوتها بشكل متكرر واستخدام التراكيب الخاسة بممالجة الأخطاء إذا كان لديك أكثر من شرط أفحصه وتريد تزويد
مستخدم برنامجك بعدد من الخيارات كاستجابة لذلك الخطاً كما تمكنك من معالجة الأخطاء الني قد لا تتوفعها.
الاستثناءات 16011015 اصطياد الأخطاء ومعالجتها
التقاط استثناء معين
لالثقلط استتناء نستعمل بلوك 694600 ... 70 بشكل عام عنما ينذ البرنامج عملية معينة قد تولد استثناء فلممل ذلك نقوم بوضرع ذلك الشيهرة
البرمجية بين عبارئي /(70 و 6946 و بعد العبارة 694607 نستكشف الاستتناءات الحاسلة
لمدعاطر ع6 ماع00 فه اه عق
الات ب ان ل
وينفس الطريقة يمكننا امتكشاف استتناء فيضان 0
وحتى أيضا يمكننا استخدامه للكشف عن اسم ملف غير صالح
ا" عبع عسعلاء 2010111 0150" 2 ومتعة معلا عم عسقمع سدم
عه سا5 معد ف 551 سذط
فحص عدة استثناءات
عندما يمكن أن تؤدي العملية الني تقوم بتنفيذها إلى عدة استتناءات مختلفة يمكنك تحديد سلسلة من الجمل «68468 لمعالجة تلك الاستثناءات
١ ملق 0علتطمصعارة معلا عم لافعلته سدم
"عي" - مطل موقل لامعلدط
وعلط لطاع 21103
عاذ اطع طال عط . 21103
سه تاعلط . 0ع 1ط ) اع فقس ع5 معلا - علط عه
() 204 020 م22 معنن و5 2 ع2 1 80ر2
نعمة ففع1 م2 " الممععة") فووا
نعمة فععا ع2 ع " الممععة") #مقوولا
عمل
قمع
معالجة الاستثناءات باستعمال بلوك 011 عام
الامتتناءات بخدر ما يهمك أنه قد حصل هنك امتتناء ما ولمعالجة الاستتناءات بغض النظر عن فوعها فإننا لانحدد امتتناء معبنابل نستخدم
مععلا عقف و5 بس
إجراء التنظيف بعد حدوث استثناء
عند استحملك لبلوك 69168 ... /70 للرد على سلسلة من الاستتناءات مقتفذ عادة عمليات تخص كل استئناء ضمن يلوك 69460 المناسب
تستخدم عبارة /ااهواع فى نهلية نلوك 6946 ... /(10 تحدد الجمل التى تريد تتغيذها بغض النظر عن نوع الاستقناء مع ملاحظة أن الجارات
الموجودة ضمن بلوك/(( ومع سيتم قنعيذها دوما بغض اأنظر عن حدوت استتناء أو لا
علطم ع5
(اممعسعدءد بللفمدة «1") #مقوفلا
قمع
قلع
الات لا ا ا
وفي بحض الحالات قد تكون هناك أوقات لا تزيد استكمل تتفي البلوك م684 ... /70 عندها تستخدم الخبارة /م7 ؛نورع للخروج من البلوك
حيبت سين بعدها أول سطر كود بلي /(70 00
وك عداط معط متع لقم ةع 16
إطلاق استثناءاتك الخاصة
هناك أوقات تحتاج فيها لتكوين استثناء خاص بك عندها ستحتاج بكل بسلطة لإنشاء فئة ووواع ثرت الفئة - 0500مع566 فعلى سديل المثل
يمكننا توليد استتناء باسم 1100م101/81080/1311668 كما بلي
طة قمع
عق قمع
و بالطبيع بمكنك إنشاء طرق وخصائص فى هذه الغئة حسب احتياجائك "كاي فئة أخرى وفي مثالنا المبسط هنا أنشأنا مننيد العثة فط وبعد
إنشاء فئة الاستتناء الخاصة بنا يمكننا توليد الاستثناء باستخدام العبارة 7018018
(#لممعععمة #موعلة النفسة 8 خلة لم ")لد مدت بع 18 ه11 18ص معلا معط
وفيمابلي مثل آخر
«معاير عقوي وفقكء منلطياط
(عوة 11655) معلا ع قد 1175
طدة فدع
المدطام 1056 عم 2 طمعق
طدة فدع
ترشيح الأخطاء في قسم 041611 في بلوك 11817 عند اصطياد الأخطاء
يوفر لنا قسم م688 في بلوك 70 أكثر من خبار لترشيح الأخطاء وإحدى هذه الطرق هى بتحديد نوع الخطأً المراد اصطياده وهنا يجب
686 لتحديد أكثر دقة مثل تحديد رقم خطأً معين حيث يمكنك دمج هذه الأساليب للحصول على الطريقة المتاسبة أبرنامجك
مثل
خطاً يسبب ان المحتمل كودك *
«م1( :1011862200628 الخطاً مع للتفاعل كود '
ممعم عم اه طمعق
فيما يلي بعض فنات الأخطاء ووصف سريع لكل منها
الفئة
وتام 115:66 اناد سخ
ممام داقعنا رطام
عتمم مس005
متام ة26:0156 0111063
ممتام 165ل
مها
ممتام 101200060056
متام 66 2 4ع ك1
ممتائه: 0605ماع تحاط
0نام 010110815
ممتاموة اتام
تام 66: 186501165
متام 6ه حمر
ممتام 4665 260 امنا
الوصفا
القيمة الممررة خارج المجال المقبول.
خطاإسند أو تحويل في عملية حسادية.
ار نابج بحاول ابام بإدخال عنصر من نو خلطئ في المصعوة
تداق عاد عبر سب
عملية البيانات تسبب خطا في الديود على فاعدة الإيانات.
اليل العا أو مديد
أخطاالقسمة على ضفر
عملية :100 8100 واجهت اسما مكررا. متل آذك تحاول إنشاء جدول مع آله يوجد جدول موجود ساق
ويملك نفس الا.
مد عيضا متاح الووتتاج تج اند ال
البرنامج يحاول الوصول إلى خاصية للفلة بطريفة غير صحيحة.
البرنانج يحاول الوصول إلى عنصر بقع خارج حدود المصفوفة أو أي عنصر احنواء آخر
البرذامج يحاول القيام بتحويل نوع غير صد؛
الحلية الاازية حاليا غيم فوح ما
خط أدخل/خرج عام
خط آذناء تحميل الملف.
لا يمكن إإجاد الملف المطلوب.
البرنامج بحاول الوصو إلى عنصر في قله بطريقة عبر صتحيحة.
البرنامج بحاول الوصول إلى الطريقة تطريفة غير صدي
البرنامج بحاول الوصول إلى خاصية غير موجودة في الل
البرنامج يداول الوصول إلى عنصر غبر موجود في الفئة
البرتاج دحاول الوصول إلى طريفة عبر موجودة في الفن.
الدرنافج بحاول استخدام مرجح إلى عرض ان0[8© قيملة لاش
متك إن كان المستخيم يحاول توا مجموعة قات ضخمة يمكتك الي يدجم الذكرة التى يماج
لاقي ان في عملية حساب
الإجراء يداول استخدام مصفوفة تملك عددا خاطْنًا من الأبعاد
أخطافي الصيغة عند إسند قيمة لخاصية
النظام يدئع الوصول نسبب عدم كفاية السلا حيا
التقاط الاستثناءات الغير معالجة في التطبيق
فى كاوعاع 81100عااتؤ0م يوجد الحدث 018056601160 0130لا الذي يستضل جميع الاستتشاءات الغير معللجة فى التطبيق مع ملاحظة
أنه عندما يل الامتتناء لهذا الحدث فإن التطبيق سيتم إنهاؤه ولا يعود مسار التنفيذ لداخل التطبيق
تنقيع الأخطاء في برنامجك مت و11 در “170111 1061118811718
عند تطوير تطبيق ما بواج المبرمج مشاكل وأخطاء تظهر أنناء التنفيذ أو الترجمة وتتقسم هذه الأخطاء إلى عدة أنواع: خطأً بالصيغة وهنا
يسهل اكتشافه حيث لن يقوم ال 60000183 بترجمة المشروع وتنفيذه إن وجد خطأً من هذا النوع وقد تعترض عليه بيئة التطوبر أثناء كثابتك
لشغرة البرنامج - خط أحمر تحث العبارة - وأخطاء وقت التنفيد وهذه أخطاء طارئة تحدث أتناء تننيذ البرنامج ويجب مراقبتها في التتيغرة
وهنا نستخدم عبارة 6840 ... /70 لحصر ذلك الأخطاء وتجاوزها مثل عندما بحاول البرنامج فتح ملف قد يكون غير متوفر للفتح لأسباب
متعددة مرئيطة ببيئة التشغيل ونوع آخر وهى أخطاء متطفية فى الكود حيت تلاحظ أن صبخة الأوامر صحيحة ولكن البرنامج لا بغوم بالعمل
كما يجب ففى هذه الحالة طرق تجاوز النوعين السلفين من المشاكل لن تدك وستضطر لاستخدام أدوث التنفح 08008810610015 لحصر
وتصحيح تلك المشاكل وفيما بلي بعض النغلط النى تساعدك على استخدام هذه الأدوات لتجاوز المشاكل من النوع الأخير
يمكنك وضع نقط التوقف 001015 80916 لإيقاف تنفيذ البرنامج عند سطر معين ويمكن بعد التوقف متابعة تنعيد البرنامج باستخدام 11ع
للمتايحة سطر سطر أو ع لمتلحة تنفيذ البرنامج حيث يمكن وضع نقلط التوقف أو إزالتها باختبار البند 886010001015 708818 من قائمة
086 أو ضغط المفتاح وم أو النغر على الهامش الرمادي بجاتب السطر المراد التوقف عنده وتظهر دائرة حمراء بجانب السطر دلالة
على وضع نقطة التوقف عندة
000 أو اضغط 5ع+1م0
يمكتك ضغط المفتاح 11م لبدء البرنامج مع التتبح سطر سطر
ذفذ سطرا آخر من البرنامج حيت يمكنك استخدام هذه الطريقة للفهم الدقيق لكيفية تنفيذ البرنامج كما أن 10ع تقوم بنفس عمل 11ع تغريبا إلا
تسل 11ع التى تفل لذلك الإجراء وتتفذه سطر سطر قبل العودة لتنفيذ باقي الكود المستدعي للإجراء
يمكتك إيقاف تنفيذ البرنامج وذلك إما بالضغط على زر التوقف من شربط الأدوات أو 501645
اضغط 5ع لتشغيل البرنامج وبهذا يبدأ تشغيل المنتج ويستمر تتيذ الكود حنى يمر على نضلة توقف 00108 8/601 وعندها يتوقف علد
السطر المحدد بتظة التوقف المحددة سابقا وبيتما أنت فى وضع التوقف يمكنك متابعة بياثات الفثات فى البرنامج عبر نافتي 800105 و
وثافذة وم انر تحمل بطريقة مشابهة ولكنها تربنا متغيرات قد لا تكون محرفة ضمن مجال التنفبذ الحالى
إنا أوققت مؤشر الفأرة فوق متغير أو خاصية ما وأنت في وضع التوقف ستلاحظ ظهور نافنة صغيرة تظهر لك ذلك الخاسية وقيمئها
ويمكنك عند الحاجة تغيير تلك الخاسية بالنقر المزدوج عليها وكثابة قيمة جديدة أو الضغط بزر الفارة اليمبني عليها تم اختبار 1/3108 806
من القلامة وتخيير تلك العجمة حيت يمكنك بحدها متابعة باستخدام 11ع
لحظ تغير مكان السهم الأصفر الذي بدل على السطر التالى الذي سيتم تنفيذه
عندما توقف مؤشر الغارة في وضع التوقف قوق نوع بيانات مركب مثل 1/8 التي تَسّير للفئة الحالية مثلا أو متغير يشير إلى فئة أو تركيب
وذلك بنفس الطريقة التي تستخدمها للتنل بين عتاسير برع1/اع76
على ذلك السطر واختبار 60150 40 ون حيبت سيتم تنفيذ البرنامج حتى ذلك السطر
المرافنة قيمة متغير بشكل مستمر نستخدم 1000م 1/0/2060 حيبت يمكنك النقر بزر الفارة اليميني على ذلك المتغير واختبار 8001/8460
المركبة ورؤية أو تغيير قيمة إحدى خصلئ
صه
الإزالة متغير من نافذة 10/8610 فط انقر بزر الغارة اليميني عليه فى تلك الناذة وأخثر 10/2467 0616148
كما يمكتك كثلبة اسم المتغير مباشرة في نافذة (40ين لمرافبئه
في حالة وجود كمية دياثات كبيرة أو بنية نيانات معقة داخل المتغير كبيائات 08/41 مثلا بمكنك ملاحظة أ؛
يمكنك إما الضغط على المكبرة مباشرة لعرض الدبانات أو النغر على السهم الصغير بجلنبها لاختبار طريقة عرض تلك الببانات من ١!
حيث بمكتك اختيار 10263 1/109 6001ل مثا في حالة ببانات من نوع 3041
ب استخدام نقلط التحشب 001045 ع7226 ليقوم المنفح بتنفيذ عمل معين عند وصوله لهذه النقلة دون إيقاف تنفيذ البرتامج أو مع إيقاف
لوضع نقطة تحقب 726800104 انقر بز الغارة اليميني على سطر الكود تم من القلئمة الفرعية 861000104 اخثر متومع6 7:8 10564
حيث يوفر لك إمكائية طباعة رسلة أو تنفيذ ماكرى بالإضافة إلى خبار لاستمراز التنفيذ أو إيقافه عند ذلك السطر كما يمكنك استخدام تعابير
معينة لإظهار قيم خلسسة فى سطر الرسالة متل 87166 لإظهار استخدام المعالج أو 870080/4 لإظهار اسم مسار التنفيذ الحالي 60182604
©1080 703680 وعند ضبطها متلاحظ ظهور معين أحمر بجانب السطر دلالة على 80104 72368 عوضا عن الدائرة الحمراء التي تشبر
ل 00100 612ع83 وستظهر الرسائل المتحلقة ب 80101 73368 فى ناقذة 4م001