تتبع مكدس الذاكرة المؤقتة من استثناء على موضوع مختلف؟

StackOverflow https://stackoverflow.com/questions/1409330

سؤال

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

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

وتتبع المكدس الناتجة يصف   مكدس في وقت   استثناء.

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

ويمكن للشخص الرجاء تأكيد؟

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

المحلول

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

static Exception threadEx;

static void Main()
{
    Thread worker = new Thread(DoWork);
    worker.Start();
    worker.Join();

    if (threadEx != null) {
        StackTrace trace = new StackTrace(threadEx);
        Console.WriteLine(trace);
    }
}

static void DoWork()
{
    try {
        throw new Exception("Boom!");
    }
    catch (Exception ex) {
        threadEx = ex;
    }
}

نصائح أخرى

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

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