2011-03-24 15 views
6

से कक्षा और फ़ाइल नाम निकालें क्या कक्षा नाम और फ़ाइल नाम को अपवाद वस्तु से निकालना संभव है?अपवाद

मैं अपने आवेदन में बेहतर लॉगिंग एकीकृत करने के लिए देख रहा हूं, और मैं अपवाद कहां से विस्तृत जानकारी शामिल करना चाहता हूं।

एमवीसी में स्टैकट्रैक फ़ाइल नाम & कक्षा का नाम नहीं लौटाता है, और मैं इन्हें देखने के लिए थोड़ा सा खो गया हूं।

धन्यवाद

उत्तर

18

आप एक अपवाद वस्तु से एक StackTrace वस्तु बना सकते हैं। इसमें StackFrame एस शामिल होगा जिसमें अपवाद की जानकारी है। तब आप फ़ाइल और विधि के नाम, पदों और क्या उपलब्ध नहीं हो सकते हैं। बेशक यह बिना कहने के जाना चाहिए, लेकिन यह सब केवल उपलब्ध है, आपने डीबगिंग प्रतीकों को शामिल करने के लिए अपनी असेंबली संकलित की है (जो मुझे लगता है कि एमवीसी में उपलब्ध हो सकता है)।

catch (Exception ex) 
{ 
    var st = new StackTrace(ex, true); // create the stack trace 
    var query = st.GetFrames()   // get the frames 
        .Select(frame => new 
        {     // get the info 
         FileName = frame.GetFileName(), 
         LineNumber = frame.GetFileLineNumber(), 
         ColumnNumber = frame.GetFileColumnNumber(), 
         Method = frame.GetMethod(), 
         Class = frame.GetMethod().DeclaringType, 
        }); 
    // log the information obtained from the query 
} 
+0

अच्छा काम दोस्त! –

संबंधित मुद्दे