سؤال

لدي استثناء غير معروف يتسبب في ظهور مربع الحوار Assistant Assistant.

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

دون تغيير الكود لإضافة كتلة المحاولة, ، كيف يمكنني الذهاب إلى النافذة المباشرة وتقييم التعبيرات على الاستثناء غير المحدد؟

من المحتمل أن يكون الجواب بعض السحر الذي لا أعرفه بعد ، مثل؟

شيء ينطوي System.Diagnostics.StackFrame أو من يدري. شيء ذكي.

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

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

المحلول

هل حاولت تعيين مصحح الأخطاء لكسر عندما يتم إلقاء الاستثناء بدلاً من ذلك عندما يكون مستخدمًا غير مستخدم؟

للقيام بذلك ، انتقل إلى القائمة الرئيسية لـ VS2010 وحدد قائمة "Debug" التالية تحديد "استثناءات ..."

سيؤدي ذلك إلى ظهور مربع حوار مثل:Debug - loading= Exceptions.. menu">

حدد العمود الرمي

الآن عندما يتم طرح استثناءك ويجب أن تكون قادرًا على تقييم المتغيرات المحلية في النافذة المباشرة.

في علامة تبويب السكان المحليين ، يمكنني رؤية متغير استثناء $:Local variables contains $exception

أنا قادر على استخدام متغير "$ استثناء" في النافذة المباشرة:Immediate Window accessing $exception

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

نصائح أخرى

لا أعرف عن Visual Studio 2010 ولكن في Visual Studio 2012 عندما يحدث استثناء غير معروف ، يتم عرضه في Locals نافذة مع الاسم $exception.

هناك خاصية لن يتم تقييمها في شبكة الممتلكات

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

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

أوصي أن تذهب old school على القضية ووضعها تتبع داخل الخاصية وأماكن أخرى ومراقبة تقارير الكتابة في نافذة الإخراج بدلاً من ذلك.

كيفية تتبع وتصحيح في Visual C#

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