আমরা পাইথনে একটি নতুন ব্যতিক্রম ক্লাস তৈরি করে ব্যবহারকারী-সংজ্ঞায়িত বা কাস্টম ব্যতিক্রম তৈরি করি। ধারণাটি হল ব্যতিক্রম ক্লাস থেকে কাস্টম ব্যতিক্রম ক্লাস নেওয়া। বেশিরভাগ অন্তর্নির্মিত ব্যতিক্রম তাদের ব্যতিক্রমগুলি প্রয়োগ করতে একই ধারণা ব্যবহার করে৷
প্রদত্ত কোডে, আপনি একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম ক্লাস তৈরি করেছেন, "CustomException"। এটি অভিভাবক হিসাবে ব্যতিক্রম ক্লাস ব্যবহার করছে। তাই, নতুন ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম শ্রেণী অন্য যেকোন ব্যতিক্রম শ্রেণীর মতো ব্যতিক্রম বাড়াবে, যেমন একটি ঐচ্ছিক ত্রুটি বার্তা সহ “raise” স্টেটমেন্ট কল করে।
একটি উদাহরণ নেওয়া যাক।
এই উদাহরণে, আমরা দেখাই কিভাবে একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম বাড়াতে হয় এবং একটি প্রোগ্রামে ত্রুটিগুলি ধরতে হয়। এছাড়াও, নমুনা কোডে, আমরা ব্যবহারকারীকে বারবার একটি বর্ণমালা লিখতে বলি যতক্ষণ না সে শুধুমাত্র সংরক্ষিত বর্ণমালায় প্রবেশ করে।
সাহায্যের জন্য, প্রোগ্রামটি ব্যবহারকারীকে একটি ইঙ্গিত দেয় যাতে সে সঠিক বর্ণমালা বের করতে পারে।
#Python user-defined exceptions class CustomException(Exception): """Base class for other exceptions""" pass class PrecedingLetterError(CustomException): """Raised when the entered alphabet is smaller than the actual one""" pass class SucceedingLetterError(CustomException): """Raised when the entered alphabet is larger than the actual one""" pass # we need to guess this alphabet till we get it right alphabet = 'k' while True: try: foo = raw_input ( "Enter an alphabet: " ) if foo < alphabet: raise PrecedingLetterError elif foo > alphabet: raise SucceedingLetterError break except PrecedingLetterError: print("The entered alphabet is preceding one, try again!") print('') except SucceedingLetterError: print("The entered alphabet is succeeding one, try again!") print('') print("Congratulations! You guessed it correctly.")