यूजर-डिफाइंड बेस क्लासेस NotImplementedError उठा सकती हैं ताकि यह इंगित किया जा सके कि किसी मेथड या व्यवहार को सबक्लास द्वारा परिभाषित करने की आवश्यकता है, एक इंटरफेस का अनुकरण करते हुए। यह एक्सेप्शन RuntimeError से प्राप्त होता है। यूजर डिफाइंड बेस क्लासेस में, एब्सट्रैक्ट मेथड्स को इस एक्सेप्शन को उठाना चाहिए जब उन्हें डिराइव्ड क्लासेस द्वारा मेथड को ओवरराइड करने की आवश्यकता होती है।
उदाहरण
import sys
try:
class Super(object):
@property
def example(self):
raise NotImplementedError("Subclasses should implement this!")
s = Super()
print(s.example)
except Exception as e:
print(e)
print(sys.exc_type)
आउटपुट
Subclasses should implement this!