এক্সেপশন হ্যান্ডলিং (Exception Handling)

লেসন ৪৭ / ৫১

Exception Handling কী?

প্রোগ্রাম চলাকালীন ভুল হলে (error/exception) প্রোগ্রাম ক্র্যাশ না করে সুন্দরভাবে সামলানো।

try-except

# ভুল ছাড়া
try:
    result = 10 / 0
except ZeroDivisionError:
    print("শূন্য দিয়ে ভাগ করা যায় না! ❌")

# একাধিক except
try:
    num = int(input("সংখ্যা দিন: "))
    result = 100 / num
    print(f"ফলাফল: {result}")
except ValueError:
    print("দয়া করে একটি সংখ্যা দিন!")
except ZeroDivisionError:
    print("শূন্য দেওয়া যাবে না!")

try-except-else-finally

try:
    f = open("data.txt", "r")
    content = f.read()
except FileNotFoundError:
    print("ফাইল পাওয়া যায়নি! ❌")
else:
    print("ফাইল সফলভাবে পড়া হয়েছে ✅")
    print(content)
finally:
    print("এই অংশ সবসময় চলবে")
    # cleanup কাজ এখানে

Custom Exception

class AgeError(Exception):
    pass

def check_age(age):
    if age < 0:
        raise AgeError("বয়স ঋণাত্মক হতে পারে না!")
    if age > 150:
        raise AgeError("বয়স ১৫০ এর বেশি হতে পারে না!")
    return "বৈধ বয়স ✅"

try:
    print(check_age(-5))
except AgeError as e:
    print(f"ভুল: {e}")