পাইথনে ব্যতিক্রম হ্যান্ডলিং ব্যবহার করার জন্য, আমাদের প্রথমে ক্লজ ছাড়া বাকি সবগুলো ধরতে হবে।
পাইথন ব্যতিক্রমগুলি ধরার জন্য "ট্রাই" এবং "ব্যতীত" কীওয়ার্ড সরবরাহ করে। "ট্রাই" ব্লক কোড বিবৃতি দ্বারা নির্বাহ করা হবে. যাইহোক, যদি একটি ব্যতিক্রম ঘটে, তবে অবশিষ্ট "ট্রাই" কোডটি কার্যকর করা হবে না এবং ব্যতীত ধারাটি কার্যকর করা হবে৷
try: some_statements_here except: exception_handling
আসুন একটি খুব সাধারণ উদাহরণ সহ উপরের সিনট্যাক্সটি দেখি -
try: print("Hello, World!") except: print("This is an error message!")
আউটপুট
Hello, World!
উপরে একটি খুব সাধারণ উদাহরণ, আসুন অন্য একটি উদাহরণ দিয়ে উপরের ধারণাটি বোঝা যাক −
import sys List = ['abc', 0, 2, 4] for item in List: try: print("The List Item is", item) r = 1/int(item) break except: print("Oops!",sys.exc_info()[0],"occured.") print('\n') print("Next Item from the List is: ") print() print("The reciprocal of",item,"is",r)
আউটপুট
The List Item is abc Oops! <class 'ValueError'> occured. Next Item from the List is: The List Item is 0 Oops! <class 'ZeroDivisionError'> occured. Next Item from the List is: The List Item is 2 The reciprocal of 2 is 0.5
উপরের প্রোগ্রামে, লুপগুলি চলে যতক্ষণ না আমরা (ইউজার ইনপুট হিসাবে) একটি পূর্ণসংখ্যা পাই যার একটি বৈধ পারস্পরিক আছে। যে কোডটি একটি ব্যতিক্রম বৃদ্ধি করে তা ট্রাই ব্লকের মধ্যে স্থাপন করা হয়।
কিছু ব্যতিক্রম ঘটলে, এটি ব্যতিক্রম ব্লক দ্বারা ধরা হবে। আমরা উপরের প্রোগ্রামটি বিভিন্ন ব্যতিক্রম ত্রুটির সাথে পরীক্ষা করতে পারি। নীচে কিছু সাধারণ ব্যতিক্রম ত্রুটি রয়েছে -
-
IOError
আমরা ফাইল খুলতে না পারলে উত্থাপিত হয়৷
-
আমদানি ত্রুটি৷
কেস মডিউল অনুপস্থিত হলে উত্থাপিত হয়৷
৷ -
মান ত্রুটি
এটি ঘটেছিল যখনই আমরা সঠিক টাইপ দিয়ে আর্গুমেন্ট পাস করি কিন্তু একটি অন্তর্নির্মিত অপারেটর বা ফাংশনের অনুপযুক্ত মান।
-
কীবোর্ড বাধা
যখনই ব্যবহারকারী ইন্টারাপ্ট কী (সাধারণত নিয়ন্ত্রণ-সি)
আঘাত করে -
EOFERর
ব্যতিক্রম উত্থাপিত হয় যখন বিল্ট-ইন ফাংশন কোনো ডেটা না পড়েই ফাইলের শেষ অবস্থা (EOF) আঘাত করে।