تنفيذ خطأ ومعالجة استثناء الاستراتيجيةتنفيذ خطأ ومعالجة استثناء الاستراتيجية
المشكلة تحتاج إلى تنفيذ الخطأ النظيفة ومعالجة الاستثناء استراتيجية في التطبيقات الخاصة بك ، لجعلها أكثر سلاسة تشغيل. نظرية وبطبيعة الحال ، هل يمكن القول بأن الخطأ واحد هو مربع الحوار والأخرى يتم إنشاؤها في حدة تحكم جافا سكريبت. حقيقة أن متصفح واحد يستخدم لاظهار مربع الحوار خطأ ، والآخر لا يعد قضية المتصفح ، وليس خطأ في القضية. وهناك طريقة مختصرة لتصنيف الأخطاء جهازي هو القول ان واحد يمثل صفحة أتش تي أم أل التهيئة والخطأ الآخر يمثل صفحة أتش تي أم أل التنفيذ الخطأ. عند تنفيذ استراتيجية الخطأ ، والنظر في التنفيذ التقني. على المستوى التقني ، وعندما تتم معالجة الحرف الأول ، ووقت تشغيل جافا سكريبت ويمكن أن يتم تنفيذ إنشاء خطأ. لكن إذا حدث خطأ يحدث ثلاثة أحرف في التجهيز ، كنت الى حد كبير عاجزة عن عمل أي شيء حيال ذلك. حتى صفحة أتش تي أم أل تم تجهيزها بشكل كامل ، يجب أن لا تمكن معالجة الخطأ ، لأن الخطأ التعامل مع الإطار قد لا يكون مهيأ بشكل صحيح. وإذا حدث خطأ لا يحدث عند هذه النقطة ، ربما لديك خطأ معالجة الإطار تنفجر نصف الجاهزة. وجود إطار محاولة لعدم اكتمال عملية خطأ سيكون مجرد إرباك ، وليس مساعدة. بك ينبغي أن يكون الهدف لتهيئة وإعداد إطار معالجة الخطأ عندما تكون الصفحة أتش تي أم أل وتم الانتهاء من تجهيزها. لمعرفة متى لتهيئة إطار معالجة الخطأ ، عليك أن تعرف متى تنتهي الصفحة أتش تي أم أل أتش تي أم أل صفحة التهيئة ويبدأ التشغيل. من الناحية الفنية ، أتش تي أم أل صفحة التهيئة يبدأ عند الحرف الأول من الصفحة أتش تي أم أل تتم معالجتها. وتقنيا ، أتش تي أم أل الصفحة وقت عندما يبدأ الحدث window.onload يسمى. الحدث window.onload يسمى بعد الصفحة أتش تي أم أل قد تم تجهيزها ، بما في ذلك الأطر والصور ، وهذا هو أول قطعة من شفرة جافا سكريبت عند تنفيذ ذلك يمكن أن نتوقع أن يكون أتش تي أم أل صفحة كاملة. على سبيل المثال تنفيذ هذا الحدث window.onload يمكن أن تكون على النحو التالي :
في هذا المثال ، هو window.onload بالقرب من أعلى الصفحة أتش تي أم أل ، ولكن وظيفة يمكن وضعه في أي مكان في الصفحة. في تنفيذ window.onload ، الأسلوب window.onerror يتم تعيينها بوصفها العالمية الخطأ جامعا المعالج. من منظور البرمجة ، ومن هذه النقطة الأخيرة ، حيث يمكنك تكوين المتصفح قبل المتصفح ويبدأ تنفيذه في وقت الصفحة أتش تي أم أل. معالج window.onerror يتلقى المعلمات الثلاث : جي اس ، الملف ، والموقع. هذه المعايير الثلاثة تمثل رسالة ، الملف ، وموقع في الملف ، على التوالي. في إطار تنفيذ معالج window.onerror ، يمكن للمعالج إصلاح وإعادة المحاولة ، إنشاء سجل ، أو فعل أي شيء آخر هو المطلوب. على سبيل المثال window.onerror التنفيذ لا ترجع قيمة صحيحة أو خاطئة ، مما أدى إلى الخطأ يتم نشرها إلى المتصفح. قيمة خاطئة سيتم نشر وعرض الخطأ ، في حين أن القيمة الحقيقية لن يجعل المتصفح على بينة من الخطأ ، وتنفيذ سبيل المثال يحتوي على المشكلة ، ولكنها ليست مع معالج خطأ. المشكلة هي مع إسناد وظيفة window.onload. كما يتم كتابة التعليمات البرمجية ، ليس هناك سوى وظيفة واحدة لتنفيذ window.onload ، وتهيئة وظيفة window.onerror. وبالنسبة لطلب اياكس من أي تعقيد ، فمن غير الممكن لتعيين window.onload طريقة واحدة ، لأن ذلك من شأنه أن أن تكون طريقة القص. الحل وهذا الحل ينطوي على إقامة مندوب وجافا سكريبت ، كما يتضح من التعليمات البرمجية المصدر التالية. المصدر : / الانترنت / الجذر / ajaxrecipes / جافا سكريبت / functionsareobjects.html في تنفيذ تعديل onload ، الدالة ops.delegate يستخدم لإنشاء أحد المندوبين. لحظة ، واعتقد من مندوب كسبيل وحيد لاستدعاء أسلوب يؤدي إلى أساليب متعددة يتم استدعاء. (يمكنك العثور على المزيد من التفاصيل حول المندوبين في صفة 2-17.) تنفيذ ops.delegate سيتم اختبار ما إذا كانت الوظيفة هي بالفعل تم تعيينه لwindow.onload. إذا كانت وظيفة يتم تعيينه ، ثم الدالة القائمة يتم تحويلها إلى وسيلة مندوب ، وظيفة جديدة يرتبط مع مندوب. ثم عندما يطلب المتصفح window.onload ، فإنه سيتم استدعاء كل من وظيفتها الأصلية وظيفة جديدة. ومن الناحية النظرية ، يمكن أن يرتبط بها عدد لا حصر له من وظائف تكون مع أحد المندوبين. الشيء المهم هو ان نتذكر ان وظائف متعددة يمكن ان ترتبط مع خاصية واحدة ، وهو الأمر المطلوب للأسلوب window.onload. وفيما يلي الاختبارات رمز الخطأ معالجة روتين : testsToRun فار = (throw_exception : الدالة () (رمي خطأ جديدا ( "هذا خطأ") ؛)) ؛ عندما يتم استدعاء الدالة throw_exception ، استثناء يتم إنشاؤها بواسطة instantiating الكائن خطأ ثم رمي باستخدام الكلمة الرئيسية للرمي. من الناحية النظرية ، يمكن أن تقوم بطرح أي كائن واحد حتى التي تبدو وكأنها خطأ. بطبيعة الحال ، وذلك باستخدام خطأ في هذا السبيل هو الخيار الأكثر فعالية ، وهذا في جوهره هو الاساس في معالجة الأخطاء الإطار الخاص بك. كنت بحاجة لالتقاط شيء خطأ ، وتحتاج إلى رمي خطأ. كيف يمكنك التقاط ومعالجة الخطأ هو سياق محدد ، حتى يظهر لك شيء آخر أو مبرمج نفذت في تطبيق آخر غير الذهاب إلى مساعدتك هنا وهناك طريقة أخرى للقبض على أي خطأ من خلال معالج استثناء ، على النحو التالي : انتج الدالة () (رمي خطأ جديد () ؛) الدالة جامعا () ((محاولة انتج () ؛) الصيد (ه) (/ / لا شيء مع الخطأ رمي ه ؛)) في هذا المثال وظيفتين : انتج وجامعا. توليد ويستخدم لتوليد استثناء ، وجامعا يستخدم للقبض على الاستثناء. في جافا سكريبت ، يمكنك التقاط استثناء باستخدام ومحاولة اللحاق المصطلحات ، والذي قبض على جميع الأخطاء والاستثناءات التي تحدث أثناء التعليمات البرمجية في كتلة حاول هو المنفذة. عندما يتم إنشاء استثناء ، رمز داخل كتلة المصيد يتم تنفيذه. على سبيل المثال ، يتم إنشاء الخطأ من انتج واشتعلت بها كتلة الصيد ، ثم يلقي فيه الخطأ. عندما يتم طرح الخطأ مرة أخرى ، سيكون مسك يكون استثناء في طريقة window.onload ، ومحاولة منع الصيد ومفيد للغاية ، لأن كل الأخطاء والاستثناءات التي يمكن صيدها دون أن يجري أي متصفح للحكمة. ولكن وجود آلية جامعا يمكن إجراء تصحيح جافا سكريبت أكثر تعقيدا ، لأن الأخطاء التي تحدث يتم معالجتها من دون أن يكون أي مطور للحكمة. أنت قد تميل إلى استخدام ومحاولة منع الصيد وتقنية البرمجة العامة ، ولكن ذلك سيكون سيئا فكرة. خطأ أن يتم طرح استثناء ، والاستثناء هو شيء ينبغي أن لا يكون قد حدث وغير متوقعة. استثناء يجب أن يحدث أبدا ، في حين يمكن أن يحدث خطأ. إن أفضل طريقة لتوضيح الفرق بين الخطأ وواستثناء هو المثال التالي ، الذي يبين كيفية استثناء يمكن استخدامها لالتقاط خطأ. نلاحظ هذا المثال يمكن أن يكون أكثر وضوحا مكتوبة باستخدام الكلمات الرئيسية الأخرى ، ولكن النقطة الأساسية هنا هي لمجرد اظهار الفرق بين استخدام قرار لاختبار متغير غير معروف ، واستخدام الاستثناء الذي ينفذ إذا كان المتغير يحدث أن يكون غير معروف. فار ظائفه ؛ محاولة (ظائفه () ؛) الصيد (ه) = (ظائفه الافتراضي ؛ ظائفه () ؛) على سبيل المثال يوضح كيفية استثناء معالج استثناء (ومحاولة اللحاق المصطلحات) يمكن استخدامها لتصفية استثناء إذا كان المتغير ظائفه لم يتم تعيين أسلوب. يدعو ظائفه سيتم إنشاء استثناء وتؤدي الى رمز في كتلة والصيد. في كتلة المصيد من الاستثناء ، وظائفه متغير يتم تعيين الدالة الافتراضية التي تعمل ويسمى. باستخدام كتلة استثناء في هذه الطريقة غير صحيحة ، لأن رمز كما هو مكتوب تتوقع أن ظائفه قد لا يكون من المحال. إذا كان هناك توقع لظائفه لم يتم تعيينه ، ثم رمز يجب أن تكون مكتوبة لتعكس ذلك. وهناك طريقة أفضل لكتابة نفس الرمز هو على النحو التالي : فار ظائفه ، وإذا كان (typeof (ظائفه)! = "الوظيفة") (ظائفه = الافتراضي ؛) ظائفه () ؛ في إعادة كتابة المثال ، رمز ظائفه اختبار من الاختبارات للتأكد من أن يتم الرجوع ظائفه وظيفة. إذا ظائفه لا إشارة دالة ، ثم تم تعيينه ظائفه الدالة الافتراضي الافتراضي. ثم عندما ظائفه تسمى ، وسوف يتم إنشاء أي استثناء. عند كتابة شفرة ، والأخطاء والاستثناءات التي سيتم إنشاؤها ، وسوف تحتاج إلى استراتيجية للتعامل معها. الحفاظ على النقاط التالية في الاعتبار عند وضع استراتيجية وخطأ استثناء : • تحميل وتجهيز صفحة أتش تي أم أل ينطوي على مرحلتين : أتش تي أم أل أتش تي أم أل صفحة صفحة التهيئة والتنفيذ. • خلال أتش تي أم أل التهيئة صفحة ، لا تنشيط خطأ استثناء استراتيجية وبذلك يمكن أن يكون لها نتائج لا يمكن التنبؤ بها. • تهيئة الخاص بك خطأ ومعالجة الاستثناء استراتيجية في أسلوب window.onload. • لا تفترض أنك تتعامل مع قطعة واحدة فقط من التعليمات البرمجية التي يجب أن يسمى بواسطة الأسلوب window.onload. استخدام مندوب للسماح وظائف متعددة ليتم استدعاؤها. • الأخطاء والاستثناءات ليست الشيء نفسه. يمكن أن تكون الأخطاء المتوقعة ومعالجتها ، ولكن لا يمكن استثناء. • يمكنك تعريف عالمي للمعالج استثناء من خلال تطبيق أسلوب window.error. • لمعالجة الاستثناءات المحلية ، يمكنك استخدام ومحاولة منع الصيد. مقال مقدم من سونيا Lande تنويه :موقعنا على الانترنت ليست مسؤولة عن محتوى هذه المادة. Webarticles هو حر للمعلومات. المهم : هذه المادة "تنفيذ خطأ ومعالجة استثناء الاستراتيجية" وقد ترجم من قبل البرمجيات التلقائي. نشعر بالاسف من اجل أي الأخطاء الإملائية التي قد حدث. شكرا لتفهمكم.
|
|||||
| Online: 208 users browsing the articles directory |
|
|