आप उठाएँ कथन का उपयोग करके कई तरह से अपवाद उठा सकते हैं। रेज़ स्टेटमेंट का सामान्य सिंटैक्स इस प्रकार है।
सिंटैक्स
raise [Exception [, args [, traceback]]]
यहां, अपवाद अपवाद का प्रकार है (उदाहरण के लिए, NameError) और तर्क अपवाद तर्क के लिए एक मान है। तर्क वैकल्पिक है; यदि आपूर्ति नहीं की जाती है, तो अपवाद तर्क कोई नहीं है।
अंतिम तर्क, ट्रेसबैक, भी वैकल्पिक है (और अभ्यास में शायद ही कभी उपयोग किया जाता है), और यदि मौजूद है, तो अपवाद के लिए उपयोग की जाने वाली ट्रेसबैक ऑब्जेक्ट है।
उदाहरण
एक अपवाद एक स्ट्रिंग, एक वर्ग या वस्तु हो सकता है। पायथन कोर द्वारा उठाए गए अधिकांश अपवाद वर्ग हैं, एक तर्क के साथ जो वर्ग का एक उदाहरण है। नए अपवादों को परिभाषित करना काफी आसान है और इसे निम्नानुसार किया जा सकता है -
def functionName( level ): if level < 1: raise "Invalid level!", level # The code below to this would not be executed # if we raise the exception
नोट - एक अपवाद को पकड़ने के लिए, एक "छोड़कर" क्लॉज को उसी अपवाद को संदर्भित करना चाहिए जो या तो क्लास ऑब्जेक्ट या साधारण स्ट्रिंग फेंका गया हो। उदाहरण के लिए, उपरोक्त अपवाद को पकड़ने के लिए, हमें अपवाद खंड को इस प्रकार लिखना होगा -
try: Business Logic here... except "Invalid level!": Exception handling here... else: Rest of the code here...