পাইথনে exception handling একটি প্রক্রিয়া যা কোডের সময় যে কোনো ত্রুটি বা সমস্যা (exception) এড়াতে এবং সেগুলোকে সঠিকভাবে পরিচালনা করতে ব্যবহৃত হয়। এর মাধ্যমে, আপনি আপনার কোডে থাকা সম্ভাব্য ত্রুটিগুলিকে পূর্বাভাস দিতে এবং ত্রুটি ঘটলে সেগুলিকে দক্ষতার সঙ্গে মোকাবিলা করতে পারেন। এটি প্রোগ্রামটি সম্পূর্ণ বন্ধ না হয়ে তার কার্যক্রম অব্যাহত রাখে।
কীভাবে কাজ করে?
পাইথনে exception handling তিনটি মূল অংশে বিভক্ত:
-
try: আপনি যে কোডটি পরীক্ষা করতে চান তা try
ব্লকে থাকে। যদি এখানে কোনো ত্রুটি ঘটলে তা ধরা পড়ে, তাহলে কোড execution থেমে যাবে এবং exception handling শুরু হবে।
-
except: যদি try
ব্লকে কোনো ত্রুটি ঘটে, তাহলে তা except
ব্লকে চলে যাবে। এখানে আপনি ত্রুটির ধরন অনুযায়ী প্রতিক্রিয়া বা ফিক্স লিখতে পারেন।
-
finally: এই ব্লকটি সর্বদা চলে, ঠিক ত্রুটি ঘটুক বা না ঘটুক। এটি সাধারণত ক্লিনআপ বা সম্পন্ন করার কাজের জন্য ব্যবহৃত হয় (যেমন ফাইল বন্ধ করা বা ডাটাবেস সংযোগ ছাড়া করা)।
উদাহরণ:
try:
# এটি এমন একটি কোড যেটি ত্রুটি ঘটাতে পারে
num = int(input("একটি সংখ্যা লিখুন: "))
result = 10 / num
except ZeroDivisionError:
# যদি ০ দিয়ে ভাগ করার চেষ্টা করা হয়
print("আপনি ০ দিয়ে ভাগ করার চেষ্টা করেছেন!")
except ValueError:
# যদি একটি সঠিক সংখ্যা না লিখে কিছু লেখা হয়
print("অনুগ্রহ করে একটি বৈধ সংখ্যা দিন!")
else:
# কোনো ত্রুটি না হলে এখানে কোড চলবে
print(f"ফলাফল: {result}")
finally:
# এই অংশটি সবসময় চলবে
print("ধন্যবাদ!")
কীভাবে এটি সাহায্য করে:
-
ত্রুটি মোকাবিলা: Exception handling ব্যবহার করে আপনি আপনার কোডের স্থানে স্থানে ত্রুটি সম্পর্কে জানাতে পারেন এবং সেই অনুযায়ী অ্যাকশন নিতে পারেন, যেমন ব্যবহারকারীদের সঠিক ইনপুট দেওয়ার জন্য অনুরোধ করা।
-
কোড সুরক্ষা: এটি কোডের স্থিতিশীলতা বজায় রাখে এবং বিভিন্ন ধরনের runtime errors যেমন
ZeroDivisionError
, ValueError
ইত্যাদি সহজে পরিচালনা করতে সহায়ক।
-
সহজ debugging:
except
ব্লকে আপনি যে ত্রুটিটি ঘটেছে তার ধরণ নির্দিষ্ট করতে পারেন, যা আপনাকে ত্রুটি দ্রুত খুঁজে বের করতে সহায়ক।
উপসংহার:
Exception handling কোডের কার্যকারিতা ও স্থিতিশীলতা বাড়াতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি প্রোগ্রামারকে কোডের মধ্যে ঘটতে পারে এমন ত্রুটির জন্য প্রস্তুত থাকতে এবং তাদের সুন্দরভাবে মোকাবিলা করতে সক্ষম করে।