কম্পিউটার টিউটোরিয়াল

পাইথনে ক্লিন-আপ অ্যাকশন ডিফাইন করা (finally ব্লক)


অনেক পরিস্থিতি হয় যখন আমরা চাই আমাদের প্রোগ্রাম সেটি নিখুঁতো চলে বা কোনো এরর থ্রো করুক, একটি নির্দিষ্ট কাজ করবে। অধিকাংশ সময় এরর বা এক্সসেপশন ক্যাচ করার জন্য আমরা try এবং except ব্লক ব্যবহার করি।

"try" স্টেটমেন্ট একটি খুব কার্যকর অপশনাল ক্লজ প্রদান করে যা 'clean-up actions' ডিফাইন করার জন্য বাধ্যবাধকভাবে এক্সিকিউট হতে হবে যেকোনো পরিস্থিতিতে। উদাহরণস্বরূপ:

>>> try:
      raise SyntaxError
    finally:
      print("Learning Python!")
Learning Python!
Traceback (most recent call last):
  File "", line 2, in 
    raise SyntaxError
  File "", line None
SyntaxError: 

finally ক্লজ যেকোনো हालতেই এক্সিকিউট হবে, যাইহোক else ক্লজ শুধু তখন এক্সিকিউট হবে যখন কোনো এক্সসেপশন উত্থাপিত হয়নি।

উদাহরণ ১ - নিচের উদাহরণ বিবেচনা করুন, সবকিছু ঠিক থাকায় এবং এক্সসেপশন ছাড়া ফাইলে রাইট করা, নিচের আউটপুট দেবে:

file = open('finally.txt', 'w')
try:
    file.write("Testing1 2 3.")
    print("Writing to file.")
except IOError:
    print("Could not write to file.")
else:
    print("Write successful.")
finally:
    file.close()
    print("File closed.")

উপরোক্ত প্রোগ্রাম রান করলে পাবো:

Writing to file.
Write successful.
File closed.

উদাহরণ ২ - একটি ফাইলকে রিড-অনলি করে সেটিতে রাইট করার চেষ্টা করি, যাতে এক্সসেপশন উত্থাপিত হয়।

file = open('finally.txt', 'r')
try:
    file.write("Testing1 2 3.")
    print("Writing to file.")
except IOError:
    print("Could not write to file.")
else:
    print("Write successful.")
finally:
    file.close()
    print("File closed.")

উপরোক্ত প্রোগ্রাম এর আউটপুট হবে কিছু এইরকম:

Could not write to file.
File closed.

যদি আমাদের একটি এরর থাকে, কিন্তু আমরা কোনো except ক্লজ রাখি নাই সেটি হ্যান্ডল করার জন্য। এমন কেসে, ক্লিন-আপ অ্যাকশন (finally ব্লক) প্রথমে এক্সিকিউট হবে এবং তারপর কম্পাইলার এরর উত্থাপন করবে। নিচের উদাহরণ দিয়ে কনসেপ্টটি বুঝি:

উদাহরণ

file = open('finally.txt', 'r')
try:
    file.write(4)
    print("Writing to file.")
except IOError:
    print("Could not write to file.")
else:
    print("Write successful.")
finally:
    file.close()
    print("File closed.")

আউটপুট

File closed.
Traceback (most recent call last):
  File "C:/Python/Python361/finally_try_except1.py", line 4, in 
    file.write(4)
TypeError: write() argument must be str, not int

সো উপরে থেকে আমরা দেখতে পাচ্ছি যে, finally ক্লজ সবসময় এক্সিকিউট হয়, এক্সসেপশন ঘটুক বা না ঘটুক।


  1. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি ও লেখা

  2. পাইথনে ফাইল অবজেক্ট: ফাইল পড়া, লিখা এবং ম্যানেজমেন্টের সম্পূর্ণ গাইড

  3. পাইথনে জাঙ্ক ফাইল অর্গানাইজার: ফাইলগুলো স্বয়ংক্রিয়ভাবে ক্যাটাগরাইজ করুন

  4. পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইল পড়া ও লিখা