পাইথনে এক্সসেপশন হ্যান্ডলিং ব্যবহার করতে, আমাদের প্রথমে সব except ক্লজ ক্যাচ করতে হবে।
পাইথন "try" এবং "except" কিওয়ার্ড প্রদান করে এক্সসেপশন ক্যাচ করার জন্য। "try" ব্লক কোড স্টেটমেন্ট বাই স্টেটমেন্ট এক্সিকিউট হবে। যাইহোক, যদি কোনো এক্সসেপশন ঘটে, তবে বাকি "try" কোড এক্সিকিউট হবে না এবং except ক্লজ এক্সিকিউট হবে।
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!occured. Next Item from the List is: The List Item is 0 Oops! occured. Next Item from the List is: The List Item is 2 The reciprocal of 2 is 0.5
উপরের প্রোগ্রামে, লুপটি ততক্ষণ চলে যতক্ষণ না আমরা (ইউজার ইনপুট হিসেবে) একটি পূর্ণসংখ্যা পাই যার একটি বৈধ রেসিপ্রোকাল আছে। যে কোডটি এক্সসেপশন উত্থাপন করে সেটি try ব্লকের মধ্যে রাখা হয়েছে।
যদি কোনো এক্সসেপশন ঘটে, তবে এটি except ব্লক দ্বারা ক্যাচ করা হবে। আমরা উপরের প্রোগ্রামকে বিভিন্ন এক্সসেপশন এরর দিয়ে টেস্ট করতে পারি। নিচে কিছু সাধারণ এক্সসেপশন এরর দেওয়া হলো:
IOError - ফাইল ওপেন না হলে উত্থাপিত হয়।
ImportError - মডিউল অনুপস্থিত থাকলে উত্থাপিত হয়।
ValueError - যখনই আমরা বিল্ট-ইন অপারেটর বা ফাংশনের জন্য সঠিক টাইপ কিন্তু অনुचিত ভ্যালু পাস করি।
KeyboardInterrupt - যখনই ইউজার ইন্টারрап্ট কী চাপায় (সাধারণত control-c)।
EOFError - বিল্ট-ইন ফাংশন যখন কোনো ডেটা পড়া ছাড়া এন্ড-অব-ফাইল কন্ডিশন (EOF) হিট করে।