سؤال

هل هناك أي حالات عندما كنت تستخدم التأكيد بدلا من الاستثناءات التعامل داخل الفصول نطاق ...

هل كانت مفيدة؟

المحلول

استخدم استثناءات من أجل التحقق من المعلمة والشيكات الأخرى التي تحقق المستخدمين منكم الطبقات استخدامها على النحو المنشود.

استخدم تأكيدات للتدقيق التناسق الداخلي، أي لبيان <م> أنت ثمل، وليس للمستخدم من صفك.

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

نصائح أخرى

وأبدا. تأكيدات ليست شكلا صالح معالجة الأخطاء. استخدامها للمساعدة في تحديد أخطاء البرنامج أثناء الاختبار.

وهناك تأكيد يعكس الدولة التي لا ينبغي أبدا أن يحدث وليس من المتوقع، حيث التطبيق لا يمكن متابعة تنفيذ لسبب أو لآخر، في حين يشير استثناء دولة التي لا تعتبر "طبيعية"، ولكن هذا لم يكن غير متوقع، والتي قد يكون من الممكن للتعافي.

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top