244 বার দেখা হয়েছে
"পাইথন" বিভাগে করেছেন
করেছেন

পাইথনে exception handling একটি প্রক্রিয়া যা কোডের সময় যে কোনো ত্রুটি বা সমস্যা (exception) এড়াতে এবং সেগুলোকে সঠিকভাবে পরিচালনা করতে ব্যবহৃত হয়। এর মাধ্যমে, আপনি আপনার কোডে থাকা সম্ভাব্য ত্রুটিগুলিকে পূর্বাভাস দিতে এবং ত্রুটি ঘটলে সেগুলিকে দক্ষতার সঙ্গে মোকাবিলা করতে পারেন। এটি প্রোগ্রামটি সম্পূর্ণ বন্ধ না হয়ে তার কার্যক্রম অব্যাহত রাখে।

কীভাবে কাজ করে?

পাইথনে exception handling তিনটি মূল অংশে বিভক্ত:

  1. try: আপনি যে কোডটি পরীক্ষা করতে চান তা try ব্লকে থাকে। যদি এখানে কোনো ত্রুটি ঘটলে তা ধরা পড়ে, তাহলে কোড execution থেমে যাবে এবং exception handling শুরু হবে।

  2. except: যদি try ব্লকে কোনো ত্রুটি ঘটে, তাহলে তা except ব্লকে চলে যাবে। এখানে আপনি ত্রুটির ধরন অনুযায়ী প্রতিক্রিয়া বা ফিক্স লিখতে পারেন।

  3. 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 কোডের কার্যকারিতা ও স্থিতিশীলতা বাড়াতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি প্রোগ্রামারকে কোডের মধ্যে ঘটতে পারে এমন ত্রুটির জন্য প্রস্তুত থাকতে এবং তাদের সুন্দরভাবে মোকাবিলা করতে সক্ষম করে।

1 টি উত্তর

0 জনের পছন্দ 0 জনের অপছন্দ
পূর্বে করেছেন
পাইথনে Exception Handling (ব্যতিক্রমী ত্রুটি ব্যবস্থাপনা) হলো এমন একটি মেকানিজম বা পদ্ধতি, যার মাধ্যমে কোড চলাকালীন কোনো ভুল বা এরর (Error) দেখা দিলে প্রোগ্রামকে ক্র্যাশ বা বন্ধ হতে না দিয়ে নিরাপদে সচল রাখা এবং ত্রুটিটি নিয়ন্ত্রণ করা যায়।

কোডে রানটাইম এরর (যেমন: শূন্য দিয়ে ভাগ করা বা ভুল ফাইল খোঁজা) হলে পাইথন একটি "Exception" বা ব্যতিক্রম তৈরি করে। এটি হ্যান্ডেল না করলে প্রোগ্রামটি সেখানেই থেমে যায়।

এটি কীভাবে কাজ করে?

পাইথনে মূলত ৪টি ব্লকের সমন্বয়ে Exception Handling কাজ করে: try, except, else, এবং finally।

১. try ব্লক:

যে কোডটিতে ভুল বা এরর হওয়ার সম্ভাবনা থাকে, সেটিকে এই ব্লকের ভেতর রাখা হয়। পাইথন প্রথমে এই ব্লকের কোডটি চালানোর চেষ্টা করে।

২. except ব্লক:

try ব্লকের কোডে কোনো ভুল হলে প্রোগ্রাম ক্র্যাশ না করে সরাসরি এই ব্লকে চলে আসে। এখানে আমরা ব্যবহারকারীকে ভুলটির কারণ বা একটি বিকল্প সমাধান দেখাতে পারি।

৩. else ব্লক (ঐচ্ছিক):

try ব্লকের কোডে যদি কোনো ভুল না হয়, তবেই কেবল এই ব্লকের কোডটি রান করে।

৪. finally ব্লক (ঐচ্ছিক):

try ব্লকে ভুল হোক বা না হোক, এই ব্লকের কোডটি অবশ্যই রান করবে। সাধারণত ফাইল বন্ধ করা বা ডেটাবেজ কানেকশন বিচ্ছিন্ন করার মতো ক্লিন-আপ কাজের জন্য এটি ব্যবহৃত হয়।

একটি বাস্তব কোড উদাহরণ:

python

def divide_numbers(a, b):

    try:

        # এখানে ভুল হওয়ার সম্ভাবনা আছে (যদি b = 0 হয়)

        result = a / b

    except ZeroDivisionError:

        # শূন্য দিয়ে ভাগ করার চেষ্টা করলে এই ব্লকটি কাজ করবে

        print("ভুল: শূন্য (0) দিয়ে কোনো সংখ্যাকে ভাগ করা যায় না!")

    except TypeError:

        # সংখ্যার বদলে স্ট্রিং বা অন্য কিছু দিলে এই ব্লকটি কাজ করবে

        print("ভুল: দয়া করে সঠিক সংখ্যা ইনপুট দিন।")

    else:

        # কোনো ভুল না হলে এটি কাজ করবে

        print(f"ভাগফল হলো: {result}")

    finally:

        # এটি সবসময় কাজ করবেই

        print("ভাগ করার প্রক্রিয়াটি সম্পন্ন হয়েছে।")

# পরীক্ষা করা যাক:

divide_numbers(10, 2) # কোনো ভুল হবে না (else এবং finally কাজ করবে)

print("-" * 30)

divide_numbers(10, 0) # ZeroDivisionError হবে (except এবং finally কাজ করবে)

Use code with caution.

কাস্টম এক্সেপশন (raise কি-ওয়ার্ড):

ডেভেলপার চাইলে নিজের মতো কোনো শর্তে ভুল তৈরি করতে পারেন raise কি-ওয়ার্ড ব্যবহার করে। যেমন:

python

age = -5

if age < 0:

    raise ValueError("বয়স কখনো ঋণাত্মক হতে পারে না!")

এরকম আরও কিছু প্রশ্ন

2 টি উত্তর
25 ফেব্রুয়ারি, 2023 "পাইথন" বিভাগে প্রশ্ন করেছেন Mdshakinur
1 টি উত্তর
16 ফেব্রুয়ারি, 2021 "পাইথন" বিভাগে প্রশ্ন করেছেন Fahad

38,113 টি প্রশ্ন

37,568 টি উত্তর

1,844 টি মন্তব্য

3,947 জন সদস্য

Ask Answers সাইটে আপনাকে সুস্বাগতম! এখানে আপনি প্রশ্ন করতে পারবেন এবং অন্যদের প্রশ্নে উত্তর প্রদান করতে পারবেন ৷ আর অনলাইনে বিভিন্ন সমস্যার সমাধানের জন্য উন্মুক্ত তথ্যভাণ্ডার গড়ে তোলার কাজে অবদান রাখতে পারবেন ৷
30 জন অনলাইনে আছেন
0 জন সদস্য, 30 জন অতিথি
আজকে ভিজিট : 18096
গতকাল ভিজিট : 24731
সর্বমোট ভিজিট : 65931640
এখানে প্রকাশিত সকল প্রশ্ন ও উত্তরের দায়ভার কেবল সংশ্লিষ্ট প্রশ্নকর্তা ও উত্তর দানকারীর৷ কোন প্রকার আইনি সমস্যা Ask Answers কর্তৃপক্ষ বহন করবে না৷
...