موصى به: برنامج ASP البرنامج التعليمي: تعلم برامج البرمجة النصية ASP لأول مرة لماذا تعلم لغة البرمجة النصية؟ ما هي العلاقة بين ASP ولغة البرمجة النصية؟ أولاً ، دعنا نتحدث عن ماهية ASP. ASP هو اختصار صفحات خادم Microsoft Active ، وهي بيئة نصية من جانب الخادم يمكن استخدامها لإنشاء صفحات ويب تفاعلية وبناء قوي
معالجة خطأ ASP
ASP بسيط للغاية بحيث لا يفكر العديد من المطورين في معالجة الأخطاء. يمكن أن تجعل معالجة الأخطاء تطبيقك أكثر منطقية. لقد رأيت العديد من المواقع التجارية المكتوبة في ASP ، معظمها يتجاهل معالجة الأخطاء.
النوع الخطأ
هناك ثلاثة أنواع أخطاء رئيسية:
خطأ التجميع:
يحدث هذا النوع من الخطأ بشكل عام بسبب مشكلة بناء جملة الشفرة. توقف الفعل ASP عن التشغيل بسبب خطأ في التجميع.
تشغيل خطأ
يحدث هذا الخطأ عندما تكون مستعدًا لتشغيل ASP. على سبيل المثال: إذا حاولت تعيين قيمة لمتغير ، ولكنها تتجاوز النطاق المسموح به من قبل المتغير.
خطأ منطقي
الأخطاء المنطقية هي الأكثر صعوبة في اكتشافها. غالبًا ما يكون هذا النوع من الخطأ خطأ هيكليًا لا يمكن اكتشافه بواسطة الكمبيوتر. هذا يتطلب منا التحقق بدقة الكود الخاص بنا.
نظرًا لأن أخطاء التجميع تحدث عادةً مع أخطاء منطقية ويمكن عرضها بشكل عام ، فإن ما نشعر بالقلق هو خطأ العملية. كل ذلك ينهي تشغيل ASP ويترك حفنة من النص غير الودي للغاية للمستخدم.
فكيف نتعامل مع أخطاء العملية! ؟ لنلقي نظرة أولاً. أمر الخطأ الوحيد الذي قدمه لنا ASP --- عند استئناف الخطأ بعد ذلك (أود أن أذكر المبتدئين أن هناك فقط خطأ في استئناف البيانات التالية في ASP ، ولكن لا يوجد على بيانات GOTO للخطأ) ولكن لا يوجد في بيانات GOTO للخطأ)
إذا لم تستخدم البيان التالي للاستئناف ، فسيحدث جميع الأخطاء في التشغيل ، وهو أمر قاتل ، فسيتم عرض رمز الخطأ إلى المستخدم ، وسيتوقف برنامج ASP أيضًا.
هنا رمز خطأ:
| ما يلي هو المحتوى المقتبس: Microsoft Ole DB Provider لـ ODBC Drivers Error 80004005 [Microsoft] [ODBC Driver Manager] اسم مصدر البيانات غير موجود ولا يوجد برنامج تشغيل افتراضي /test.asp ، الخط 60 |
عندما نستخدم البيان التالي على السيرة الذاتية في الجزء العلوي من البرنامج ، سيتم تجاهل جميع الأخطاء وسيقوم البرنامج تلقائيًا بتنفيذ البيان التالي. وبهذه الطريقة ، سيتم تنفيذ البرنامج بالكامل ، ولن يرى المستخدم رسالة الخطأ بعد حدوث خطأ. ولكن هناك أيضًا عيوب بهذه الطريقة ، أي إذا لم يتم تنفيذ البرنامج كما تتخيل ، فسيكون من الصعب عليك معرفة الخطأ ، لذلك عليك التعامل مع الأخطاء عند الضرورة.
التعامل مع الأخطاء
في ASP ، فإن أفضل طريقة للتعامل مع الأخطاء هي وضع الرمز في أسفل البرنامج للتعامل مع الأخطاء. أوصي أيضًا باستخدام المخازن المؤقتة في كل برنامج ASP. وبهذه الطريقة ، في حالة حدوث خطأ ، ستتوقف الصفحة وسيتم مسح محتوى الصفحة ، بحيث لن يرى المستخدم رسالة الخطأ وسيكون هناك شكاوى أقل عنك! هنا مثال:
| ما يلي هو المحتوى المقتبس: <٪ "اضبط المخزن المؤقت على True استجابة. buffer = صحيح ابدأ معالجة الخطأ عند استئناف الخطأ التالي ٪> <٪ "التعامل مع الخطأ إذا err.number <> 0 ثم قم بمسح الصفحة استجابة عرض رسالة الخطأ إلى المستخدم ٪> <html> <head> <title> </title> </head> <body bgcolor =#c0c0c0> <font face = arial> حدث خطأ في تنفيذ صفحة ASP هذه <br> يرجى الإبلاغ عن المعلومات التالية إلى مكتب الدعم <p> <b> كائن خطأ الصفحة </b> <br> رقم الخطأ: <٪ = err.number ٪> <br> رسالة الخطأ: <٪ = err.description ٪> <br> ملف الخطأ: <٪ = err.source ٪> <br> خط الخطأ: <٪ = err.line ٪> <br> </font> </body> </html> <٪ نهاية إذا ٪> |
كما ترون أعلاه ، قمت أولاً بتعيين خاطئ السيرة الذاتية بعد ذلك ، حتى لا يؤثر خطأ على تنفيذ البرنامج.
معالجة الأخطاء وقاعدة البيانات
إن تنفيذ إضافة قواعد البيانات إلى معالجة الأخطاء معقد للغاية. إذا كان لدينا برنامج به العديد من الأوامر لإضافة سجلات إلى قاعدة البيانات ، إذا تم تنفيذ إدراج/تحديث في أسفل البرنامج ، إذا حدث خطأنا مرة أخرى من قبل ، فستكون قد انتهى! سنضيف رسالة خطأ إلى قاعدة البيانات. لأننا استخدمنا في استئناف الخطأ بعد ذلك ، تم تجاهل جميع الأخطاء! حتى إذا كان هناك خطأ من قبل ، فسيظل البرنامج يضيف بيانات إلى قاعدة البيانات.
لتجنب هذا الموقف ، علينا أن نفعل بعض الحيل أولاً. الطريقة الصحيحة للتعامل معها هي كما يلي:
| ما يلي هو المحتوى المقتبس: إذا err.number = 0 و objconnection.errors.count = 0 ثم لا يمكن تنفيذ البيان إلا لأنه لا توجد أخطاء تعيين rstresults = dbdata.execute (txtsql) إنهاء إذا |
حلول أكثر تقدما
عند حدوث خطأ ، يمكنك أيضًا عرض المزيد من رسائل الخطأ. فيما يلي مثال على التعامل مع كل من أخطاء قاعدة البيانات والصفحة. مع ذلك ، يمكننا اكتشاف جميع الأخطاء في برنامجنا في وقت واحد.
| ما يلي هو المحتوى المقتبس: <٪ إذا err.number <> 0 ثم استجابة حدد CASE ERR.Number القضية 8 حدد الرقم الخطأ "استكشاف الأخطاء المخصصة لإصلاحها هنا حالة أخرى خطأ عام إذا isObject (objConnection) ثم إذا objconnection.errors.count> 0 ثم ٪> <b> كائن اتصال قاعدة البيانات </b> <٪ للترابط = 0 إلى objconnection.errors.count - 1 ٪> خطأ رقم: <٪ = objConnection.errors (inloop) .number ٪> <br> الوصف: <٪ = objConnection.errors (inloop) .Description ٪> <br> المصدر: <٪ = objConnection.errors (inloop) .Source ٪> <br> SQLSTATE: <٪ = objConnection.ERRORS (inloop) .SQLSTATE ٪> <BR> Nativeerror: <٪ = objconnection.errors (inloop) .Nativeerror ٪> <p> <٪ التالي إنهاء إذا إنهاء إذا إذا err.number <> 0 ثم ٪> <b> كائن خطأ الصفحة </b> <br> رقم الخطأ <٪ = err.number ٪> <br> وصف الخطأ <٪ = err.description ٪> <br> المصدر <٪ = err.source ٪> <br> الكتان <٪ = err.line ٪> <p> <٪ إنهاء إذا نهاية الاختيار إنهاء إذا ٪> |
يتيح لنا المثال أعلاه التعامل مع العديد من المشكلات التي تنشأ في قاعدة البيانات ، والتي تُستخدم أيضًا بشكل شائع في برامجنا اليومية! يجب أن نرى أيضًا عبارة CASE SELECT ، والتي تتيح لنا التعامل مع أخطاء محددة.
إعادة التوجيه والتعامل مع الأخطاء
شيء واحد يجب أن نولي اهتمامًا إليه هو الكائن المعاد توجيهًا الذي نستخدمه غالبًا. إذا ظهر كائن إعادة توجيه في صفحة ، فإن معالجة الخطأ ستفقد معناها. لذلك علينا أن نتعامل معها قبل الدوران ، على النحو التالي:
| ما يلي هو المحتوى المقتبس: إذا err.number = 0 و objconnection.errors.count = 0 ثم استجابة استجابة. url url هنا إنهاء إذا |
اجعل الرمز أكثر أنيقًا
لجعل الكود أكثر أناقة ، أولاً ، الملف الذي يتم التعامل معه في الملف أولاً في ملف يحتوي على. بهذه الطريقة يمكنك استخدامه في أي ملف. هذا هو أيضا مريحة لتعديل.
أضف ON ERRREW استئناف البيان التالي في الجزء العلوي من البرنامج (بعد إعلان اللغة بالطبع).
قم بفحص الخطأ قبل تنفيذ SQL.
كان معالجة الخطأ مطلوبة أيضًا قبل استخدام إعادة التوجيه.
اسمح لك بالتعامل مع الأخطاء التي تحتوي على ملفات في أعلى الكود.
Share: يدرك برنامج ASP وظيفة ترقيم الصفحات لتوفير قيم المعلمة فيما يلي المحتوى المشار إليه: <٪ '' '' call example'dim int_rpp ، int_start ، int_shownumbli