2016-09-22 11 views
6

नल रेफरेंस अपवाद को पकड़ने के लिए शून्य जांच की तलाश करते समय, मैं इस पर आया।सीएलआर में किसी भी अन्य अपवाद की तुलना में NullReferenceException अधिक महंगा कैसे आता है?

एक अशक्त भिन्नता पकड़ने सबसे महंगी आपरेशन कि CLR प्रदर्शन कर सकते हैं में से एक है, और यह एक गंभीर प्रदर्शन प्रभाव हो सकता है अगर आपके कोड NullReferenceExceptions का एक बहुत फेंक रहा है। शून्यता के लिए परीक्षण और इसके बारे में कुछ और करने (यहां तक ​​कि अपवाद फेंकना!) एक सस्ता ऑपरेशन है।

यहां प्रश्न का एक लिंक है जहां मैंने इसे पाया। When is handling a null pointer/reference exception preferred over doing a null check?

मैं सोच रहा हूँ कैसे पकड़ने NullReferenceException अशक्त जांच और फेंक अपवाद से ज्यादा महंगा हो सकता है।

उत्तर

8

यहां मुद्दा यह है कि एक NullReferenceException किसी अन्य अपवाद से ज्यादा महंगा है नहीं है [क्योंकि अपर्याप्त प्रतिष्ठा संख्या के वहाँ टिप्पणी नहीं कर सकता है]। फेंकने के अपवाद की लागत ढेर को अनलॉक करने से होती है और यह विशिष्ट अपवाद की तुलना में कॉल संरचना पर अधिक निर्भर करती है। मेरा मानना ​​है कि जिस बिंदु पर दस्तावेज़ बनाने की कोशिश कर रहा है वह यह है कि इसे पहले स्थान पर अपवाद के खिलाफ सुरक्षित सुरक्षा के लिए कम महंगी है, इसे फेंकने पर इसे संभालना है।

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

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