سؤال

و'هاء تم تشغيل من خلال وثائق مساعدة MSDN للحصول على تعليق من Visual Basic. بعد محاولة الخروج المثال باستخدام توقيت --one تستمر عنصر التسمية ومؤقت إلى المصمم ويضيف التالية إلى روتين مكونات

Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString

والناتج عن الإطار الفوري أثناء التصحيح هو التالي

<اقتباس فقرة>   

وأول فرصة استثناء من نوع   'System.InvalidCastException' حدث   في Microsoft.VisualBasic.dll   
  الاول   استثناء فرصة من نوع   'System.InvalidCastException' حدث   في Microsoft.VisualBasic.dll

ويحدث الخطأ نفسه على سبيل المثال MSDN السابق باستخدام عنصر قائمة السياق. يجب أن Try...Catch...Finally هذا الخطأ ومحاولة للمضي قدما؟ أو، أنا التعامل مع شيء أكثر خطورة بكثير؟

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

المحلول

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

نصائح أخرى

في القائمة تصحيح -> استثناءات، يمكنك تمكين المصحح لوقف عندما يتم طرح استثناء أولا، حتى إذا كان سيتم القبض عليه في وقت لاحق. إذا كنت ترغب في معرفة ما يحدث، وهذا هو أسهل طريقة للقيام بذلك

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

في IDE حاول الذهاب إلى أدوات> خيارات> مشاريع وحلول> الافتراضيات VB وتحديد الخيار الصارم 'على' - وهذا قد يساعد في مشاكل الصيد الصب عند ترجمة المشروع الخاص بك بدلا من عند تشغيله

.

وA 'الفرصة الأولى execption' لا يعني بالضرورة أن يكون لديك مشكلة في التعليمات البرمجية. ويمكن أن تعني IDE أو المترجم أو أي مكون آخر تشارك اجه والتعامل مع خطأ وفي عملية إخطار المصحح ويتم الإبلاغ عن الاستثناء إلى إطار فوري. هذه هي وظيفة ممتازة في موضوع:

http://blogs.msdn.com/davidklinems /archive/2005/07/12/438061.aspx

وهناك حل سريع وسهل لتصحيح ووالتشخيص من أول فرصة استثناء هو:

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

ثم

private void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs firstChanceExceptionEventArgs)
    {
        if (firstChanceExceptionEventArgs.Exception is NullReferenceException)
        {
            // do your handling and debugging :)
        }
    }

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

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