Python যখনই কোড অস্বাভাবিক আচরণ করে এবং এর কার্যকারিতা হঠাৎ বন্ধ হয়ে যায় তখন ত্রুটি এবং ব্যতিক্রমগুলি ছুড়ে দেয়। পাইথন ট্রাই-এক্সেপ্ট স্টেটমেন্ট ব্যবহার করে ব্যতিক্রম হ্যান্ডলিং পদ্ধতির সাহায্যে এই ধরনের পরিস্থিতি পরিচালনা করার জন্য আমাদের সরঞ্জাম সরবরাহ করে। কিছু স্ট্যান্ডার্ড ব্যতিক্রম যা পাওয়া যায় তার মধ্যে রয়েছে ArithmeticError, AssertionError, AttributeError, ImportError, ইত্যাদি।
একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম ক্লাস তৈরি করা
এখানে আমরা একটি নতুন ব্যতিক্রম ক্লাস তৈরি করেছি যেমন User_Error। ব্যতিক্রমগুলি প্রত্যক্ষ বা পরোক্ষভাবে অন্তর্নির্মিত ব্যতিক্রম শ্রেণী থেকে প্রাপ্ত করা প্রয়োজন। আসুন প্রদত্ত উদাহরণটি দেখি যা প্রদত্ত ক্লাসের মধ্যে একটি কন্সট্রাক্টর এবং প্রদর্শন পদ্ধতি রয়েছে।
উদাহরণ
# class MyError is extended from super class Exception class User_Error(Exception): # Constructor method def __init__(self, value): self.value = value # __str__ display function def __str__(self): return(repr(self.value)) try: raise(User_Error("User defined error")) # Value of Exception is stored in error except User_Error as error: print('A New Exception occured:',error.value)
আউটপুট
A New Exception occured: User defined error
একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম ক্লাস তৈরি করা (একাধিক উত্তরাধিকার)
প্রাপ্ত বর্গ ব্যতিক্রমগুলি তৈরি করা হয় যখন একটি মডিউল একাধিক একাধিক স্বতন্ত্র ত্রুটি পরিচালনা করে। এখানে আমরা সেই মডিউল দ্বারা সংজ্ঞায়িত ব্যতিক্রমগুলির জন্য একটি বেস ক্লাস তৈরি করেছি। এই বেস ক্লাসটি বিভিন্ন ধরণের ত্রুটিগুলি পরিচালনা করার জন্য বিভিন্ন ব্যবহারকারী-সংজ্ঞায়িত শ্রেণী দ্বারা উত্তরাধিকারসূত্রে পাওয়া যায়৷
উদাহরণ
# define Python user-defined exceptions class Error(Exception): """Base class for other exceptions""" pass class Dividebyzero(Error): """Raised when the input value is zero""" pass try: i_num = int(input("Enter a number: ")) if i_num ==0: raise Dividebyzero except Dividebyzero: print("Input value is zero, try again!") print()
আউটপুট
Enter a number: Input value is zero, try again!
একটি ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রম ক্লাস তৈরি করা (স্ট্যান্ডার্ড ব্যতিক্রম)
রানটাইম ত্রুটি একটি অন্তর্নির্মিত শ্রেণী যা উত্থাপিত হয় যখনই একটি উত্পন্ন ত্রুটি উল্লিখিত বিভাগে পড়ে না। নিচের প্রোগ্রামটি ব্যাখ্যা করে কিভাবে রানটাইম এররকে বেস ক্লাস হিসেবে ব্যবহার করতে হয় এবং ইউজার-ডিফাইনড এররকে ডেরাইভড ক্লাস হিসেবে ব্যবহার করতে হয়।
উদাহরণ
# User defined error class Usererror(RuntimeError): def __init__(self, arg): self.args = arg try: raise Usererror("userError") except Usererror as e: print (e.args)
আউটপুট
('u', 's', 'e', 'r', 'E', 'r', 'r', 'o', 'r')
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা পাইথন 3.x-এ ব্যবহারকারী-সংজ্ঞায়িত ব্যতিক্রমগুলি ঘোষণা এবং প্রয়োগ করি। অথবা আগে।