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