go2
से शुरू हो रहा है, यह जोर से समझना आसान है।
विधि कुछ भी नहीं करता है, यह सिर्फ आपकी उम्मीद पर जोर देता है, x < 0
।
दूसरी ओर, go
विधि, switch
है।
यह default
खंड पर assert false
करना एक अच्छी आदत है अगर आप बिल्कुल अपने कार्यक्रम इस धारा के अंतर्गत गिरावट की उम्मीद नहीं है, यानी, सामान्य परिस्थितियों में, case
रों में से एक सही हो गया है।
switch
पर केवल मामले की उम्मीद x
बिल्कुल2
किया जाना है।
तो, समेकित करने के लिए, x
से 0
से अधिक होने की उम्मीद नहीं है, जैसा कि पहले दावा के अनुसार, आप x
2
और कुछ भी नहीं होने की उम्मीद करते हैं। इस प्रकार, दावा उचित रूप से उपयोग नहीं किया जाता है।
लेकिन, जैसा कि Jeff बताया गया है, case
कोई break
, जो default
हमेशा की तरह, निष्पादित किया जाएगा प्रमुख, हर स्थिति में, assert false
का मतलब है।
निष्कर्ष:go
विधि हमेशा एक त्रुटि में परिणाम चाहिए, assert false
ठीक से इस्तेमाल कर रही है, जबकि assert x > 0
बिल्कुल सही नहीं है।
शब्द "उचित उपयोग" बहुत व्यक्तिपरक है, इसलिए भ्रम की स्थिति है। उन्हें उस प्रश्न को स्पष्ट करना चाहिए। –
यह भी देखें [उत्तर] (http://stackoverflow.com/questions/1957645/when-to-use-assertion-vs-exception) – Amarnath
यह वास्तव में मदद करेगा यदि उन्होंने कोड नमूना का उपयोग किया जो कि एक छोटी राशि भी बना समझ में – asteri