আপনি try: ব্লকের সাথে finally: ব্লক ব্যবহার করতে পারেন। finally ব্লক হলো সেই কোডের জায়গা যা অবশ্যই এক্সিকিউট হবে, try-ব্লক এক্সসেপশন raise করুক বা না করুক। try-finally স্টেটমেন্টের সিনট্যাক্স:
try:
# আপনার অপারেশনগুলো এখানে
......................
# এক্সসেপশন হলে এটি স্কিপ হতে পারে
finally:
# এটি সবসময় এক্সিকিউট হবে
......................
finally ক্লজের সাথে else ক্লজ ব্যবহার করা যায় না।
উদাহরণ
#!/usr/bin/python
try:
fh = open("testfile", "w")
fh.write("This is my test file for exception handling!!")
finally:
print "Error: can't find file or read data"
আউটপুট
যদি ফাইলটি রাইট মোডে খোলার পারমিশন না থাকে, তবে নিচের ফলাফল আসবে:
Error: can't find file or read data
এই উদাহরণটি আরও পরিষ্কারভাবে লেখা যায়:
উদাহরণ
#!/usr/bin/python
try:
fh = open("testfile", "w")
try:
fh.write("This is my test file for exception handling!!")
finally:
print "Going to close the file"
fh.close()
except IOError:
print "Error: can't find file or read data"
try-ব্লকে এক্সসেপশন থ্রো হলে এক্সিকিউশন অবিলম্বে finally-ব্লকে চলে যায়। finally-ব্লকের সব স্টেটমেন্ট এক্সিকিউট হওয়ার পর এক্সসেপশন পুনরায় raise হয় এবং अगল लेयर के try-except-स्टेटमेंट-এ present except-স্টেটमेंट-এ হ্যান্ডল হয়।