c# - why Run-time Error occurred instead of Compile Error? -


मेरा प्रश्न कोड की टिप्पणियों में है:

  स्थिर शून्य मुख्य (स्ट्रिंग [] args ) {Int a = int.Parse (Console.ReadLine ()); इंट div1 = 5 / a; // a रनटाइम के समय तक अज्ञात नहीं है, // if a == 0, रनटाइम त्रुटि हुई। यह ठीक है! ए = 0; Int div2 = 10 / a; // स्थानीय चर ए के मान शून्य है // और कोई वाक्य नहीं मौजूद है // "a = 0" के बीच; और "इंट div2 = 10 / a;" चर को बदलने के लिए, // क्यों रनटाइम त्रुटि के बजाय त्रुटि संकलित हुई है? }  

आपके उत्तर के लिए अग्रिम धन्यवाद। मैं अंग्रेजी के लिए खराब कारणों से माफी चाहता हूं क्योंकि अंग्रेजी मेरी दूसरी भाषा है।

केवल रन टाइम वेरिएबल < कोड> ए को 0 मान निर्दिष्ट किया जाएगा और इसलिए विभाजन DivideByZero अपवाद के साथ असफल हो जायेगा।

ऐसा करने से कोशिश करें int Div2 = 10/0; और देखेंगे कि कंपाइलर स्पॉट पर लाल स्क्विगली त्रुटि को फेंक दें।

यदि आप int a जैसा < कोड> स्थिर नीचे की तरह

  स्थिर int a = 0; Int div2 = 10 / a;  

ऐसा इसलिए है क्योंकि, संकलन समय पर; कंपाइलर केवल जहां भी संदर्भित किया गया है, वह निरंतर मान को स्थानांतरित करेगा जो इसे 0 द्वारा सीधे विभाजित करने के समान है। तो नीचे दी गई रेखा

  int div2 = 10 / a;  

हो जाएगा

  int div2 = 10/0;  

Comments