2012-07-17 11 views
5

तो यह एक अजीब सवाल है, लेकिन यह मजेदार हो सकता है!क्या मैं अजगर में उद्देश्य पर अपवाद का कारण बन सकता हूं?

मैं किसी भी तरह मज़बूती से अजगर में एक अपवाद पैदा करने के लिए की जरूरत है। मैं इसे मानव ट्रिगर करने के लिए पसंद करूंगा, लेकिन मैं अपने कोड में कुछ एम्बेड करने के लिए भी तैयार हूं जो हमेशा अपवाद का कारण बनता है। (मैंने कुछ अपवाद हैंडलिंग स्थापित की है और इसे जांचना चाहूंगा)

मैं चारों ओर देख रहा हूं और कुछ विचार शून्य से विभाजित होते हैं या उन पंक्तियों के साथ कुछ हमेशा अपवाद का कारण बनता है - क्या कोई बेहतर है मार्ग? कार्यक्रम चल रहा है, जबकि इंटरनेट कनेक्शन के नुकसान का अनुकरण करने के लिए सबसे आदर्श होगा .... किसी भी विचार महान होगा!

मज़े करो!

+0

आप बस अपना कोड डाल सकते हैं: 'raise करें ...' ', उदा। 'TypeError raise करें '' – mouad

उत्तर

5

हां, वहां है: आप स्पष्ट रूप से अपने अपवाद उठा सकते हैं।

raise Exception("A custom message as to why you raised this.") 

आप नेटवर्क कनेक्टिविटी के नुकसान के लिए उपयुक्त अपवाद/त्रुटि उठाना चाहते हैं।

+0

उपयोग करने में आसान है। यह पहले से ही मुझे एक टन मदद कर रहा है! धन्यवाद! – Mizmor

0

हाँ, तुम बस खटखटाने से कर सकते होने के लिये एक रन समय त्रुटि के लिए अपने कोड में

1/0 
कहीं भी

, विशेष रूप से इस मामले में एक ZeroDivisionError: integer division or modulo by zero में।

यह सबसे आसान तरीका है अपने कोड में कुछ एम्बेड करके एक अपवाद प्राप्त करने के लिए (जैसा कि आप अपने पोस्ट में उल्लेख किया है)। आप निश्चित रूप से अपने स्वयं के अपवाद भी उठा सकते हैं .. आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है।

+2

... वह क्या अच्छा करेगा? यह अनुक्रमित करना चाहते हैं जो भी त्रुटि का प्रतिनिधित्व करने के लिए पर्याप्त काम नहीं करता है; यह इसके बजाए सिर्फ 'ज़ीरोडिविजन एरर' है। – Makoto

+0

@Makoto ओपी उद्धृत करने के लिए: "मैं अपने कोड में कुछ एम्बेड करने के लिए भी तैयार हूं जो हमेशा अपवाद का कारण बनता है" .. आप ओपी में अपनी टिप्पणी को सर्वश्रेष्ठ निर्देशित करते हैं। – Levon

3

आप, अजगर में अपने स्वयं के अपवाद को परिभाषित ताकि आप अपनी आवश्यकताओं के अनुसार कस्टम त्रुटियों बना सकते हैं कर सकते हैं। आप परीक्षण कर सकते हैं कि कुछ शर्तों मौजूद हैं, और चाहे या नहीं अपने चमकदार, कस्टम अपवाद को बढ़ाने के लिए तय करने के लिए है कि परीक्षण के truthiness का उपयोग करें:

class MyFancyException(Exception): pass 

def do_something(): 
    if sometestFunction() is True: 
     raise MyFancyException 
    carry_on_theres_nothing_to_see()  

try: 
    do_something() 
except MyFancyException: 
    # This is entirely up to you! 
    # What needs to happen if the exception is caught? 

documentation कुछ उपयोगी उदाहरण है।

+0

यह वास्तव में भी अच्छा है! जब मैं एक अतिरिक्त मिनट प्राप्त करता हूं तो मैं अपना खुद का निर्माण करूँगा। धन्यवाद! – Mizmor

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

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