ভূমিকা
পাইথন শেখার জার্নিতে এসে আরেকটা গুরুত্বপূর্ণ ধাপে পৌঁছেছি! আজ আমরা এরর হ্যান্ডলিং এবং ডিবাগিং নিয়ে কথা বলব। কোড লিখতে গেলে ভুল হবেই—মূল কথা হলো সেগুলো কীভাবে সামলাবেন। এই পোস্টে আপনি শিখবেন:
-
try
,except
,finally
, এবংelse
ব্লক ব্যবহার। - বিভিন্ন ধরনের এরর এবং কাস্টম এরর।
- ডিবাগিং টেকনিক এবং টুলস।
- একটা প্রজেক্ট যেখানে ইনপুট চেক করব (যেমন ইমেইল)।
এরর হ্যান্ডলিং শিখলে আপনার প্রোগ্রাম ক্র্যাশ করবে না এবং ডিবাগিং শিখলে ভুল খুঁজে ঠিক করা সহজ হবে। চলুন শুরু করি!
এরর হ্যান্ডলিং কী?
প্রোগ্রামে এরর হলে সেটা ধরে সঠিকভাবে সামলানোই হলো এরর হ্যান্ডলিং। পাইথনে try-except
দিয়ে এটা করা হয়।
try
, except
, finally
, এবং else
-
try
: এখানে সমস্যা হতে পারে এমন কোড লেখা হয়। -
except
: এরর হলে কী করতে হবে তা বলে। -
finally
: এরর হোক বা না হোক, এটা সবসময় চলবে। -
else
: এরর না হলে এটা চলবে।
উদাহরণ:
try:
num = int(input("একটা সংখ্যা লিখুন: "))
except ValueError:
print("ভুল! সংখ্যা লিখতে হবে।")
else:
print(f"আপনি লিখেছেন: {num}")
finally:
print("প্রোগ্রাম শেষ।")
- ইনপুট যদি “abc” হয়:
ValueError
ধরবে। - ইনপুট যদি “5” হয়:
else
চলবে।
আউটপুট (সংখ্যা হলে):
একটা সংখ্যা লিখুন: 5
আপনি লিখেছেন: 5
প্রোগ্রাম শেষ।
বিভিন্ন ধরনের এরর এবং কাস্টম এরর
সাধারণ এরর
-
ValueError
: ভুল টাইপের ইনপুট (যেমনint("abc")
)। -
FileNotFoundError
: ফাইল না পাওয়া গেলে। -
ZeroDivisionError
: শূন্য দিয়ে ভাগ করলে। -
IndexError
: লিস্টে ভুল ইনডেক্স ব্যবহার।
উদাহরণ:
try:
result = 10 / 0
except ZeroDivisionError:
print("শূন্য দিয়ে ভাগ করা যায় না!")
কাস্টম এরর
নিজের এরর তৈরি করতে raise
ব্যবহার করা যায়:
age = int(input("আপনার বয়স লিখুন: "))
if age < 0:
raise ValueError("বয়স ঋণাত্মক হতে পারে না!")
print(f"আপনার বয়স: {age}")
- বয়স -৫ হলে:
ValueError
উঠবে।
কেন দরকার? নিজের শর্ত অনুযায়ী এরর তৈরি করতে।
ডিবাগিং টেকনিক এবং টুলস
ডিবাগিং মানে কোডের ভুল খুঁজে ঠিক করা।
সাধারণ টেকনিক
-
print()
ব্যবহার: কোডে কী হচ্ছে দেখতে।
num = "abc"
print("ইনপুট চেক করছি:", num)
result = int(num) # এখানে এরর হবে
- কোড ধাপে ধাপে চেক: ছোট অংশ চালিয়ে দেখুন।
- কমেন্ট করে টেস্ট: সমস্যার জায়গা বাদ দিয়ে চালান।
টুলস
-
VSCode Debugger:
- ব্রেকপয়েন্ট সেট করে কোড ধাপে ধাপে চালান।
- ভ্যারিয়েবলের মান দেখতে পারেন।
-
Python’s
pdb
: কমান্ড লাইনে ডিবাগ করা।
import pdb
num = 10
pdb.set_trace() # এখানে থামবে
result = num / 0
কেন দরকার? ভুল দ্রুত খুঁজে ঠিক করতে।
প্রজেক্ট: ইমেইল চেকার প্রোগ্রাম
চলুন একটা প্রোগ্রাম বানাই যেটা ইমেইল ঠিক আছে কি না চেক করবে।
ধাপগুলো:
- নতুন ফাইল বানান, নাম দিন
email_checker.py
। - এই কোড লিখুন:
def is_valid_email(email):
if "@" not in email or "." not in email:
raise ValueError("ইমেইল-এ @ এবং . থাকতে হবে!")
if len(email) < 6:
raise ValueError("ইমেইল খুব ছোট!")
return True
while True:
try:
user_email = input("আপনার ইমেইল লিখুন (বা 'exit' লিখে বের হন): ")
if user_email.lower() == "exit":
print("বাই বাই!")
break
is_valid_email(user_email)
print(f"ইমেইল ঠিক আছে: {user_email}")
except ValueError as e:
print(f"ভুল: {e}")
finally:
print("চেক শেষ।\n")
- টার্মিনালে চালান:
python email_checker.py
- আউটপুট দেখুন:
আপনার ইমেইল লিখুন (বা 'exit' লিখে বের হন): abc
ভুল: ইমেইল-এ @ এবং . থাকতে হবে!
চেক শেষ।
আপনার ইমেইল লিখুন (বা 'exit' লিখে বের হন): rahim@example.com
ইমেইল ঠিক আছে: rahim@example.com
চেক শেষ।
কোড ব্যাখ্যা:
-
is_valid_email()
: ইমেইল চেক করে, ভুল হলে এরর উঠায়। -
try-except
: ভুল ধরে মেসেজ দেখায়। -
finally
: প্রতিবার চেক শেষে চলে। -
"exit"
: লুপ থেকে বের হওয়ার উপায়।
এই প্রজেক্টে এরর হ্যান্ডলিং-এর শক্তি বোঝা যায়।
হোমওয়ার্ক: লগইন সিস্টেম সিমুলেশন
আপনার কাজ হলো একটা লগইন সিস্টেম বানানো যেটা ভুল ইনপুটের জন্য এরর মেসেজ দেবে।
ধাপগুলো:
- ফাইল বানান, নাম দিন
login_system.py
। - এই কোড লিখুন:
# ডামি ডেটা
users = {"rahim": "pass123", "ria": "abc456"}
def login(username, password):
if username not in users:
raise ValueError("ইউজারনেম পাওয়া যায়নি!")
if users[username] != password:
raise ValueError("পাসওয়ার্ড ভুল!")
return True
while True:
try:
username = input("ইউজারনেম লিখুন: ")
password = input("পাসওয়ার্ড লিখুন: ")
login(username, password)
print(f"লগইন সফল! স্বাগতম, {username}!")
break
except ValueError as e:
print(f"লগইন ব্যর্থ: {e}")
except KeyboardInterrupt:
print("প্রোগ্রাম বন্ধ করা হয়েছে।")
break
- চালান:
python login_system.py
- উদাহরণ:
ইউজারনেম লিখুন: ria
পাসওয়ার্ড লিখুন: wrong
লগইন ব্যর্থ: পাসওয়ার্ড ভুল!
ইউজারনেম লিখুন: rahim
পাসওয়ার্ড লিখুন: pass123
লগইন সফল! স্বাগতম, rahim!
কোড ব্যাখ্যা:
-
users
: ডিকশনারিতে ইউজারনেম-পাসওয়ার্ড। -
login()
: ইনপুট চেক করে, ভুল হলে এরর উঠায়। -
try-except
: ভুল ধরে মেসেজ দেখায়। -
KeyboardInterrupt
: Ctrl+C চাপলে বন্ধ হয়।
উপসংহার
আজ আমরা শিখলাম:
-
try
,except
,finally
,else
দিয়ে এরর হ্যান্ডলিং। - বিভিন্ন এরর এবং কাস্টম এরর তৈরি।
- ডিবাগিং টেকনিক।
- ইমেইল চেকার প্রোগ্রাম।
এরর হ্যান্ডলিং এবং ডিবাগিং শিখে আপনি এখন আরও ভালো প্রোগ্রামার। প্রজেক্ট আর হোমওয়ার্ক চেষ্টা করুন। কমেন্টে বলুন কেমন লাগলো বা কোথায় সমস্যা হয়েছে।
প্রশ্ন:
- এরর হ্যান্ডলিং কি বোঝা সহজ লেগেছে?
- লগইন সিস্টেমে কি কিছু যোগ করতে চান?
- ডিবাগিং-এ কোন টেকনিক বেশি পছন্দ হয়েছে?
Top comments (0)