Exception Handling in Python
Syntax
output
output
output
- y variable টি আগে কোথাও ডিফাইন করা ছাড়াই এখানে ব্যবহার করছি
- y কে ০ দ্বারা ভাগ করছি
output
output
output
উদাহরণ ১-
try ভিতর কোন statement ভুল হলে except ভিতর যে statement গুলো থাকবে তা রান হবে কিন্তু যদি try ভিতর সব statement ঠিক থাকে তবে except ভিতর কোন statement কাজ করবে নাহ । একটি উদাহরণ দেখা যাক
print(‘One’)print(‘Two’)try:print(10/0)except ZeroDivisionError:print(“Exception passed”)print(‘Four’)print(‘Five’)আউটপুট
OneTwoException passedFourFiveউদাহরণ ২-
আমাদের অনেক সময় try statement আলাদা আলাদা error জন্য আলাদা আলাদা error দেখানোর জন্য multiple except blocks এর ব্যবহার করে থাকি –
try:x=int(input(“Enter First Number: “))y=int(input(“Enter Second Number: “))print(x/y)except ZeroDivisionError:print(“Can’t Divide with Zero”)except ValueError:print(“please provide int value only”)আউটপুট
Enter First Number: 10Enter Second Number: 25.0Enter First Number: 23Enter Second Number: 0Can’t Divide with ZeroEnter First Number: 12Enter Second Number: zeroplease provide int value onlyউদাহরণ ৩-
আলাদা আলাদা multiple exception না লিখে আমরা এক লাইনে except করার জন্য আমাদের কে সাধারণত validation error কে টাপল এ মধ্যে রেখে চেক করতে হবে –
try:x=int(input(“Enter First Number: “))y=int(input(“Enter Second Number: “))print(x/y)except (ZeroDivisionError,ValueError) as e:print(“Please Provide valid numbers only and problem is: “, e)আউটপুট
Enter First Number: 10Enter Second Number: onePlease Provide valid numbers only and problem is: invalid literal for int() with base 10: ‘one’Enter First Number: 10Enter Second Number: 0Please Provide valid numbers only and problem is: division by zeroউদাহরণ ৪-
আমাদের অনেক সময় exist validation error check করে কোন ইরর না ধরতে পারলে তখন আমরা তা default exception দিয়ে চেক করে থাকি –
try:x=int(input(“Enter First Number: “))y=int(input(“Enter Second Number: “))print(x/y)except ZeroDivisionError:print(“ZeroDivisionError: Can’t divide with zero”)except:print(“Default Except: Please provide valid input only”)আউটপুট
Enter First Number: 10Enter Second Number: 0ZeroDivisionError: Can’t divide with zeroEnter First Number: 10Enter Second Number: zeroDefault Except: Please provide valid input onlyউদাহরণ ৫-
আমাদের try-except এ finally নামে আর একটা keyword থাকে যা দিয়ে আমাদের try-except যেকোন statement ঠিক execute হোক না কেন finally এর ভিতর যে statement থাকবে তা অবশ্যই রান করবে ।
try:x=int(input(“Enter First Number: “))y=int(input(“Enter Second Number: “))print(x/y)except ZeroDivisionError:print(“ZeroDivisionError: Can’t divide with zero”)finally:print(‘Finishing up.’)আউটপুট
Enter First Number: 10Enter Second Number: 200.5Finishing up.Enter First Number: 10Enter Second Number: 0ZeroDivisionError: Can’t divide with zeroFinishing up.
- অনুশীলনঃ
- এমন একটি টেক্সট ফাইল ওপেন করার চেষ্টা করুন , যেটি আপনার ডিস্কে নেই , এবং যথাযথ এরর প্রিন্ট করে দেখান ।
- একটি ফাংশন দুইটি প্যারামিটার নেয় , এবং এর কাজ হচ্ছে ভাগফল বের করে দেয়া। ফাংশনটি এমনভাবে লিখুন যেন কখনই এরর না দেয়। (sample input: a=10,b=5 | a=”a”,b=10 | a= 10 , b= 0)
- আপনাকে একটি অ্যারে দেওয়া হলো । আপনার কাজ হচ্ছে একটি ইনফিনিটি লুপ চালিয়ে অ্যারের সব ভ্যালু প্রিন্ট করতে কিন্তু অই ইনফিনিটি লুপ থেকে বের হবার জন্য আপনি কোন কন্ডিশনাল statement ব্যবহার করতে পারবেন নাহ । আবার কোড কোন ভুল দেখাবে নাহ ।
- দুই টি ইনপুট নিবেন এবং টার্মিনাল থেকে ইনপুট নেবার যত ধরনের লজিকাল এরর খাওয়া যায় সব গুলো এরর গুলো প্রিন্ট করবেন এবং লাস্ট বেলায় সঠিক ইনপুট নিয়ে তাদের ভাগফল দেখাবেন । যত বেশি এরর handle করতে পারবেন আপনার পয়েন্ট তত বেশি ।
- একটি কোড লিখবেন যা দিয়ে একটি ফাইল open হবে । এখন যদি আমাদের ডেস্ক অই ফাইল থাকে তবে তা ওপেন হবে আর না থাকলে ওপেন হবে নাহ । কিন্তু আমাদের কোডের শেষবেলায় দায়িত্ব অই ফাইল টি close করা । আপনারা এই কোড টি try-exception মাধ্যমে করার চেষ্টা করবেন ।
- গুরুত্বপূর্ন প্রশ্নসমুহঃ
- কোন keyword দিয়ে আমরা এরর গুলো দেখতে পারি ?
- কোন ব্লক দিয়ে আমরা ঝামেলাপুর্ন কোড হ্যান্ডেল করি ?
- এরর হ্যান্ডেল করা কেন জরুরী ?
- পাইথন এ কিছু built-in-exceptions সম্পর্কে বলেন ।
- পাইথন এ raising an error এবং throwing an exception পার্থক্য কি ?