2011-09-01 30 views
7

एच हमारे पास लॉग उपयोगिता फ़ंक्शन है जिसे हम अक्सर कॉल करते हैं और मैं Server.GetLastError() पर कॉल जोड़कर इसे मसाला बनाना चाहता हूं और यदि लॉग इन करने में कोई त्रुटि है। लॉग फ़ंक्शन अलग प्रोजेक्ट का हिस्सा है इसलिए मैंने HttpContext.Current.Server.GetLastError() का उपयोग करने की कोशिश की (जैसा कि मैं अनुरोध, सर्वर वैरिएबल और सत्र गुणों के लिए करता हूं)। परीक्षण के दौरान मैं सरल अपवाद बनाया:

int i=0, j=0; 
try 
{ 
    int k = i/j; 
} 
catch (Exception E) 
{ 
    Tools.CooLog("in"); 
} 
Tools.CooLog("out"); 

आदेश में जानने के लिए कि "HttpContext.Current.Server.GetLastError()" जब Tools.CooLog("out"); कहा जाता है अपवाद वापस आ जाएगी।

इसके बजाय मेरे पास दो बड़ी आश्चर्य थी 1. दोनों कॉल HttpContext.Current.Server.GetLastError() शून्य में लौट आया। 2. और शायद अजीब बात यह है कि स्थानीय अनुभाग में कोओलॉग की पहली कॉल के दौरान मैंने अपने युवा, सुन्दर और PHP संस्करण को देखा - मैंने देखा कि $ अपवाद नामक मूल्य है और आश्चर्य की बात है कि यह अपवाद है कि HttpContext.Current.Server.GetLastError() विफल वापस पाने के लिए!

$exception is defined and HttpContext.Current.Server.GetLastError() fails

तो मेरे सवालों का क्यों HttpContext.Current.Server.GetLastError() अशक्त रिटर्न 1. कर रहे हैं? (HttpContext.Current.Request.ServerVariables ठीक काम करता है) 2. जहां वह $ अपवाद आता है? इसका उपयोग करने का कोई तरीका है? (CooLog को दूसरी कॉल में परिवर्तनीय अपरिभाषित है)

उत्तर

6

यह एक विशेष डीबगर चर है। आप कोड के माध्यम से इसका उपयोग नहीं कर सकते हैं।

या

  • Application.Error घटना प्रबंधित:

    कारण आप इसे देखो विंडो में नहीं दिख रहा है, कि अपवाद या तो कर दिया गया है है अभी तक निकाल दिया नहीं गया है।

+0

महान सूचनात्मक उत्तर :) धन्यवाद – SimSimY

3

$exception केवल अपवाद है कि डीबगर ने आपके प्रोग्राम के निष्पादन को रोक दिया था। यह आपके मामले E में आपके कैच ब्लॉक में अपवाद के समान ही है।

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