KeyError কী এবং কেন হয়?
KeyError পাইথনে তখন উঠে যখন আপনি একটি ডিকশনারিতে অস্তিত্বহীন একটি কী (key) এক্সেস করার চেষ্টা করেন।
raspberry_pi = {"name": "Raspberry Pi 4", "price": 35.00, "RAM": "4GB"}
print(raspberry_pi["usb_ports"]) # KeyError: 'usb_ports'
KeyError হ্যান্ডেল করার ৪টি কার্যকর পদ্ধতি
১. get() মেথড ব্যবহার (সেরা ও পাইথনিক)
value = raspberry_pi.get("usb_ports", "Not Available")
print(value) # আউটপুট: Not Available
get(key, default) — কী না থাকলে ডিফল্ট ভ্যালু রিটার্ন করে, এক্সেপশন ছাড়া।
২. 'in' অপারেটর দিয়ে চেক করা
key = "usb_ports"
if key in raspberry_pi:
print(raspberry_pi[key])
else:
print("Key not found")
সদস্যত্ব যাচাই (Membership test) করে নিরাপদে এক্সেস করা যায়।
৩. try-except ব্লক ব্যবহার
try:
print(raspberry_pi["usb_ports"])
except KeyError:
print("This information is not available.")
EAFP (Easier to Ask for Forgiveness than Permission) স্টাইল — পাইথনে প্রচলিত।
৪. setdefault() মেথড (কী না থাকলে যোগ করুন)
value = raspberry_pi.setdefault("usb_ports", 4)
print(value) # 4
print(raspberry_pi) # এখন usb_ports কী আছে
কোন পদ্ধতি কখন ব্যবহার করবেন?
| পরিস্থিতি | সুপারিশকৃত পদ্ধতি |
|---|---|
| সিম্পল ভ্যালু রিট্রিভ, ডিফল্ট দরকার | dict.get(key, default) |
| কী আছে কিনা চেক করে লজিক বানাতে | if key in dict: |
| এক্সেপশন হ্যান্ডেলিং প্যাটার্ন ফলো করতে | try/except KeyError |
| কী না থাকলে ডিফল্ট দিয়ে ডিকশনারি আপডেট করতে | dict.setdefault(key, default) |
নিষ্কর্ষ
KeyError এড়াতে সর্বোত্তম উপায় হলো get() মেথড বা in অপারেটর ব্যবহার। try-except জটিল লজিকের জন্য উপযুক্ত। সঠিক পদ্ধতি বেছে নিয়ে কোডকে ক্র্যাশ-প্রুফ করুন।