سؤال

هل من الممكن قمع الساكلسات الفرصة الأولى في Visual Studio (Devugger C #) للحصول على خطوط معينة من التعليمات البرمجية؟

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

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

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

المحلول

Disuggernonusercodeattribute

اعتبارا من .NET 2.0، إذا حددت طريقة مع [debuggernonusercode.] السمة، وسيقوم المصحح بتخطي استثناءات الفرصة الأولى في ذلك.

اقتباس من رابط MSDN (التركيز هو Mine):

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

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

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


معلومات إضافية ...

مثال استخدام من هذه المقالة

using System.Diagnostics;
using XL = Microsoft.Office.Interop.Excel;

public static class WorkbookExtensions
{
    [DebuggerNonUserCode]
    public static bool TryGetWorksheet(this XL.Workbook wb, string worksheetName, out XL.Worksheet retrievedWorksheet)
    {
        bool exists = false;
        retrievedWorksheet = null;

        try
        {
            retrievedWorksheet = GetWorksheet(wb, worksheetName);
            exists = retrievedWorksheet != null;
        }
        catch(COMException)
        {
            exists = false;
        }

        return exists;
    }

    [DebuggerNonUserCode]
    public static XL.Worksheet GetWorksheet(this XL.Workbook wb, string worksheetName)
    {
        return wb.Worksheets.get_Item(worksheetName) as XL.Worksheet;
    }
}

المقالة يظهر خيارات مشروع VS ذات الصلة التي قد تكون مفيدة.
alt text

نصائح أخرى

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

ومع ذلك، ما سأفعله هو إيقاف تشغيل استثناءات أول فرصة في مصحح الأخطاء، صراحة try/catch الاستثناء الذي تريد التقاطه، ووضع في Debugger.Break() عندما تكون قد اشتعلت ذلك.

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