কম্পিউটার

পাইথনে কংক্রিট ব্যতিক্রম


পাইথনে কিছু সাধারণ ব্যতিক্রম আছে। এই ব্যতিক্রমগুলি সাধারণত বিভিন্ন প্রোগ্রামে উত্থাপিত হয়। এগুলি প্রোগ্রামার স্পষ্টভাবে বাড়াতে পারে, অথবা পাইথন ইন্টারপ্রেটার এই ধরনের ব্যতিক্রমগুলি অস্পষ্টভাবে বাড়াতে পারে। এর মধ্যে কিছু ব্যতিক্রম হল -

ব্যতিক্রম দাবীর ত্রুটি

AssertionError বাড়তে পারে, যখন একটি assert স্টেটমেন্ট ব্যর্থ হয়। পাইথনে কিছু আছে, আমরা আমাদের কোডে কিছু অ্যাসার্ট স্টেটমেন্টও সেট করতে পারি। দাবী বিবৃতি সবসময় সত্য হতে হবে. শর্ত ব্যর্থ হলে, এটি AssertionError বাড়াবে।

উদাহরণ কোড

ক্লাস মাইক্লাস:def __init__(self, x):self.x =x assert self.x> 50 myObj =MyClass(5)

আউটপুট

<পূর্ব>------------------------------------------------------------ ---------------------------- দাবী ত্রুটি ট্রেসব্যাক (সর্বশেষ সর্বশেষ কল) <মডিউল>(এ ) 4 assert self.x> 50 5 ----> 6 myObj =MyClass(5) in __init__(self, x) 2 def __init__(self, x):3 self.x =x----> 4 assert self.x> 50 5 6 myObj =MyClass(5)AssertionError:

ব্যতিক্রম বৈশিষ্ট্য ত্রুটি

অ্যাট্রিবিউটের ত্রুটি বাড়তে পারে, যখন আমরা একটি ক্লাসের কিছু অ্যাট্রিবিউট অ্যাক্সেস করার চেষ্টা করব, কিন্তু এটি এতে উপস্থিত থাকে না।

উদাহরণ কোড

ক্লাস পয়েন্ট:def __init__(self, x=0, y=0):self.x =x self.y =y def getpoint(self):print('x=' + str(self.x)) print('y=' + str(self.y)) print('z=' + str(self.z))pt =point(10, 20)pt.getpoint()

আউটপুট

x=10y=20----------------------------------------- ---------------------------------AttributeError Traceback (সর্বশেষ সাম্প্রতিক কল) ইন <মডিউল>() 10 11 pt =পয়েন্ট(10, 20)---> 12 pt.getpoint() getpoint(self) 7 print('x=' + str( self.x)) 8 প্রিন্ট('y=' + str(self.y))----> 9 প্রিন্ট('z=' + str(self.z)) 10 11 pt =পয়েন্ট(10, 20) অ্যাট্রিবিউট ত্রুটি:'বিন্দু' অবজেক্টের কোনো অ্যাট্রিবিউট নেই 'z'

ব্যতিক্রম আমদানি ত্রুটি

আমদানি ত্রুটি ঘটতে পারে যখন আমদানি হয় বিবৃতি কিছু মডিউল আমদানি করতে কিছু সমস্যার সম্মুখীন হচ্ছে। এটিও উত্থাপন করা যেতে পারে, যখন একটি থেকে বিবৃতিতে প্যাকেজের নাম সঠিক, কিন্তু নির্দিষ্ট নাম হিসাবে কোনও মডিউল পাওয়া যায় না৷

উদাহরণ কোড

গণিত থেকে abcd def __init__(self, x=0, y=0):

আউটপুট

<পূর্ব>------------------------------------------------------------ ----------------------------আমদানি ত্রুটি ট্রেসব্যাক (সর্বশেষ সাম্প্রতিক কল) <মডিউল>(এ ----> গণিত থেকে 1 আমদানি abcdImportError:'abcd' নাম আমদানি করা যাবে না

ব্যতিক্রম ModuleNotFoundError

এটি ImportError এর একটি সাবক্লাস। একটি মডিউল অবস্থিত না হলে, এই ত্রুটি বাড়াতে পারে. এটি যখন কোনটিই নয় তখনও উত্থাপিত হতে পারে sys.modules এ পাওয়া যায়।

উদাহরণ কোড

এবিসিডি আমদানি করুন

আউটপুট

<পূর্ব>------------------------------------------------------------ ----------------------------ModuleNotFoundError Traceback (সর্বশেষ সর্বশেষ কল) (এ ----> 1 আমদানি abcdModuleNotFoundError:'abcd' নামে কোনো মডিউল নেই

ব্যতিক্রম সূচক ত্রুটি

একটি সিকোয়েন্সের সাবস্ক্রিপ্ট (লিস্ট, টুপল, সেট ইত্যাদি) রেঞ্জের বাইরে থাকলে সূচক ত্রুটি বাড়তে পারে।

উদাহরণ কোড

myList =[10, 20, 30, 40]print(str(myList[5]))

আউটপুট

<পূর্ব>------------------------------------------------------------ ----------------------------IndexError Traceback (সর্বশেষ সর্বশেষ কল) <মডিউল>(এ ) 1 myList =[10, 20, 30, 40] ----> 2 প্রিন্ট(str(myList[5]))IndexError:তালিকার সূচী সীমার বাইরে

ব্যতিক্রম পুনরাবৃত্তি ত্রুটি

RecursionError হল একটি রানটাইম ত্রুটি। যখন সর্বাধিক পুনরাবৃত্তি গভীরতা অতিক্রম করা হয়, তখন এটি বাড়ানো হবে৷

উদাহরণ কোড

def myFunction():myFunction()myFunction()

আউটপুট

<পূর্ব>------------------------------------------------------------ ---------------------------- পুনরাবৃত্ত ত্রুটি ট্রেসব্যাক (সর্বশেষ সর্বশেষ কল) <মডিউল>(এ ) 2 myFunction() 3 ----> 4 myFunction() in myFunction() 1 def myFunction():----> 2 myFunction() 3 4 myFunction().. শেষ 1টি ফ্রেম পুনরাবৃত্তি হয়েছে, নীচের ফ্রেম থেকে ... myFunction() 1 def myFunction():----> 2 myFunction() 3 4 myFunction()RecursionError:সর্বাধিক পুনরাবৃত্তি গভীরতা অতিক্রম করেছে

ব্যতিক্রম StopIteration

পাইথনে, আমরা next() নামক অন্তর্নির্মিত পদ্ধতি দ্বারা StopIteration ত্রুটি পেতে পারি। যখন একটি পুনরাবৃত্তিকারীর আর কোনো উপাদান থাকে না, তখন পরবর্তী() পদ্ধতিটি StopIteration ত্রুটি বাড়াবে।

উদাহরণ কোড

myList =[10, 20, 30, 40]myIter =iter(myList) যদিও True:print(next(myIter))

আউটপুট

10203040--------------------------------------------------------- -----------------------------স্টপইটারেশন ট্রেসব্যাক (সর্বশেষ সাম্প্রতিক কল) <মডিউল> এ  () 2 myIter =iter(myList) 3 while True:----> 4 print(next(myIter))StopIteration:

ব্যতিক্রম ইন্ডেন্টেশন ত্রুটি

যখন পাইথন কোডে কিছু অবৈধ ইন্ডেন্টেশন থাকে, তখন এটি এই ধরনের ত্রুটি বাড়াবে। এটি সিনট্যাক্স ত্রুটি উত্তরাধিকার সূত্রে পায় পাইথনের শ্রেণী।

উদাহরণ কোড

এর জন্য i রেঞ্জে(10):print("i এর মান:" + str(i))

আউটপুট

ফাইল "", লাইন 2 প্রিন্ট("i এর মান:" + str(i)) ^IndentationError:একটি ইন্ডেন্টেড ব্লক প্রত্যাশিত

ব্যতিক্রম TypeError

একটি অনুপযুক্ত ধরনের বস্তুর উপর একটি অপারেশন সঞ্চালিত হলে TypeError ঘটতে পারে। উদাহরণস্বরূপ, যদি আমরা অ্যারে সূচকে একটি ফ্লোটিং পয়েন্ট নম্বর প্রদান করি, তাহলে এটি একটি TypeError প্রদান করবে।

উদাহরণ কোড

muList =[10, 20, 30, 40]print(myList[1.25])

আউটপুট

<পূর্ব>------------------------------------------------------------ ---------------------------- TypeError Traceback (সর্বশেষ সর্বশেষ কল) <মডিউল>(এ ) 1 muList =[10, 20, 30, 40] ----> 2 প্রিন্ট(myList[1.25])TypeError:তালিকা সূচকগুলি অবশ্যই পূর্ণসংখ্যা বা স্লাইস হতে হবে, ভাসমান নয়

ব্যতিক্রম ZeroDivisionError

যখন এমন একটি পরিস্থিতি থাকে যেখানে ডিভিশন সমস্যার জন্য হর 0 (শূন্য) হয়, তখন এটি ZeroDivisionError বাড়াবে।

উদাহরণ কোড

প্রিন্ট(5/0)

আউটপুট

<পূর্ব>------------------------------------------------------------ ---------------------------- ZeroDivisionError Traceback (সর্বশেষ সর্বশেষ কল) <মডিউল>(এ ----> 1 প্রিন্ট(5/0)জিরোডিভিশন ত্রুটি:শূন্য দ্বারা বিভাজন
  1. পাইথন - কিভিতে বোতাম অ্যাকশন

  2. টিকিন্টার পাইথনে সংকোচনযোগ্য ফলক

  3. পাইথনে বাইনারি ট্রি ব্যাস

  4. পাইথনে উত্তরাধিকার