2010-02-24 12 views

उत्तर

5

logic_error ये अपवाद आधार है।

ये सभी तार्किक त्रुटियां हैं: इनपुट के साथ कुछ गलत गलत है कि आउटपुट अजीब होगा। तो मैं कहूंगा कि आपको आमतौर पर इसे सीधे उपयोग करने की आवश्यकता नहीं है, क्योंकि उन चार कवरों में कोई तर्क त्रुटियां शामिल हैं जिन्हें मैं सोच सकता हूं। लेकिन वे आपको इस बारे में एक विचार देते हैं कि श्रेणी क्या है।

+2

जब हम अपने कोड में बग पकड़ते हैं तो logic_error अपवाद फेंकना उचित होगा? जैसे जोर देने के बजाए इसका इस्तेमाल करें()। – sivabudh

+4

शायद नहीं। 'assert' के लिए * प्रोग्रामर त्रुटियों * के लिए हैं। उपयोगकर्ता इनपुट के बावजूद, कुछ जांचना शून्य, आदि है, जो * नहीं होना चाहिए *। असल में, उन चीजों के लिए अपवाद हैं जो थोड़ी देर में होने की उम्मीद है, और पकड़े और संसाधित हो जाते हैं। – GManNickG

+0

@GMan: रन-टाइम के दौरान होने वाली बग को पकड़ने के लिए हमारे अच्छे ओल 'हमले के बजाय मैं कौन सा अपवाद उपयोग कर सकता हूं? मुझे लगता है कि जोर बहुत अच्छा है, लेकिन मैं उन्हें सुंदर निकास के लिए संभालने के लिए अपवाद का उपयोग करना चाहता हूं। – sivabudh

2

जैसा कि जीएमएन पहले से ही इंगित करता है, यह मुख्य रूप से अन्य अपवाद वर्गों का आधार है। आप इसे सीधे किसी ऐसे व्यक्ति के लिए उपयोग करने पर विचार कर सकते हैं जो मूल रूप से एक दावा है। जैसे यदि कुछ कोड निष्पादित होने से पहले बनाए गए किसी विशेष ऑब्जेक्ट पर निर्भर करता है, तो यह निष्पादित होने पर logic_error (व्युत्पन्न के बजाए) फेंकना उचित हो सकता है और यह ऑब्जेक्ट अभी तक नहीं बनाया गया है।

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