Exception Handling – ফ্রি পাইথন কোর্স ২০২০ – ক্লাস ২০

প্রোগ্রামিং করার সময়, ত্রুটি ঘটে। এটি জীবনের সত্য ঘটনা। সম্ভবত ব্যবহারকারী খারাপ ইনপুট দিয়েছেন। সম্ভবত কোনও নেটওয়ার্ক রিসোর্স অনুপলব্ধ ছিল। সম্ভবত প্রোগ্রামটির মেমোরি শেষ হয়ে গেছে। অথবা প্রোগ্রামার হয়ত ভুল করেছে!

পাইথনের ত্রুটিগুলির সমাধান হল Exception। আপনি এর আগেও Exception দেখে থাকতে পারেন।

print(a)

#error
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
</module></stdin>

ফলাফল:

  File "<stdin>", line 4
    Traceback (most recent call last):
                         ^
SyntaxError: invalid syntax

উফফফফ! ‘a’ ভেরিয়েবলের মান নির্ধারণ করতে ভুলে গেছি।

তবে কখনও কখনও আপনি Exceptions প্রোগ্রামটি পুরোপুরি বন্ধ করুক তা চান না। কোনও Exception উত্থাপিত হলে আপনি বিশেষ কিছু করতে চাইতে পারেন। এটি একটি try/except ব্লকে করা হয়।

এখানে একটি তুচ্ছ উদাহরণ: ধরুন আপনি কোনও লিস্টের ইটারেট করছেন। আপনার 20 টিরও বেশি সংখ্যা ইটারেট করতে হবে তবে লিস্টটি ব্যবহারকারী ইনপুট থেকে তৈরি হয়েছে এবং এতে 20 টি সংখ্যা নাও থাকতে পারে। আপনি লিস্টের শেষে পৌঁছানোর পরে, আপনি কেবল বাকী সংখ্যাগুলি 0 হিসাবে ব্যাখ্যা করতে চান। এখানে আপনি কীভাবে এটি করতে পারেন তা হল:

def do_stuff_with_number(n):
    print(n)

def catch_this():
    the_list = (1, 2, 3, 4, 5)

    for i in range(20):
        try:
            do_stuff_with_number(the_list[i])
        except IndexError: # Raised when accessing a non-existing index of a list
            do_stuff_with_number(0)

catch_this()

ফলাফল:

1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

এটা খুব কঠিন ছিল না! আপনি যে কোনও exception দিয়ে এটি করতে পারেন। exception-গুলি পরিচালনা করার বিষয়ে আরও তথ্যের জন্য পাইথন ডক্সে যান

Leave a Comment