पायथन आपको स्टैंडर्ड बिल्ट-इन एक्सेप्शन्स से क्लासेस डेराइव करके अपने खुद के एक्सेप्शन्स बनाने की अनुमति भी देता है।
यहां RuntimeError से संबंधित एक उदाहरण है। यहां एक क्लास बनाई गई है जिसे RuntimeError से सबक्लास किया गया है। यह तब उपयोगी होता है जब आपको किसी एक्सेप्शन के पकड़े जाने पर अधिक विशिष्ट जानकारी प्रदर्शित करने की आवश्यकता होती है।
try ब्लॉक में, यूजर-डिफाइंड एक्सेप्शन को उठाया जाता है और except ब्लॉक में पकड़ा जाता है। वेरिएबल e का उपयोग Networkerror क्लास का इंस्टेंस बनाने के लिए किया जाता है।
class Networkerror(RuntimeError):
def __init__(self, arg):
self.args = arg
एक बार जब आप उपरोक्त क्लास को परिभाषित कर लेते हैं, तो आप निम्नानुसार एक्सेप्शन को उठा सकते हैं:
try:
raise Networkerror("Bad hostname")
except Networkerror, e:
print e.args