the doc से
दोनों (कोई अनपेक्षित व्यवहार) मान्य हैं:
बढ़ाने के लिए एकमात्र तर्क इंगित करता है अपवाद उठाया जा। यह या तो एक अपवाद उदाहरण या अपवाद वर्ग (एक वर्ग जो अपवाद से निकला है) होना चाहिए।
मेरी राय में, एक उदाहरण या कस्टम डेटा या जो कुछ भी इस्तेमाल किया जा करने की जरूरत है अगर आप इसे डेटा रखने के लिए चाहते हैं, यह एक संदेश है कि क्या है (जैसा कि आपने कहा था)।
@alko के रूप में कहा, यदि आप कोई उदाहरण नहीं देते हैं तो यह किसी भी तर्क के साथ तत्काल होगा।
इस अगर आप एक अनिवार्य तर्क की जरूरत है काम नहीं करेगा:
>>> class MyError(Exception):
... def __init__(self, message, data=None):
... self.msg = message
... self.data = data or {}
...
>>> raise MyError
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: __init__() takes at least 2 arguments (1 given)
आप एक वर्ग बढ़ा देते हैं, यह प्रभावी रूप में बदला न गया 'कक्षा() जुटाने' (जैसे, कोई पैरामीटर के साथ बनाया), लेकिन मैं कर सकते हैं ' इस समय एक संदर्भ नहीं मिला ... –
संदर्भ: http://docs.python.org/3/reference/simple_stmts.html#the-raise-statement – alko
@alko yup ... 'अन्यथा, पहले मूल्यांकन का मूल्यांकन करें अपवाद वस्तु के रूप में अभिव्यक्ति। यह या तो सबक्लास या बेसएक्सप्शन का एक उदाहरण होना चाहिए। यदि यह एक वर्ग है, तो बिना किसी तर्क के कक्षा को तुरंत चालू करके आवश्यक अपवाद उदाहरण प्राप्त किया जाएगा। 'यह सब कुछ कहता है –