যদি আপনি কেবল অজগর 3.x সমর্থন করার পক্ষে যথেষ্ট ভাগ্যবান হন তবে এটি সত্যই সৌন্দর্যের একটি জিনিস হয়ে যায় :)
থেকে উত্থাপন
আমরা বাড়াতে ব্যবহার করে ব্যতিক্রমগুলি চেইন করতে পারি ।
try:
1 / 0
except ZeroDivisionError as e:
raise Exception('Smelly socks') from e
এই ক্ষেত্রে, আপনার কলার যে ব্যতিক্রমটি ধরবে সে জায়গার লাইন নম্বর রয়েছে যেখানে আমরা আমাদের ব্যতিক্রম বাড়িয়ে তুলি।
Traceback (most recent call last):
File "test.py", line 2, in <module>
1 / 0
ZeroDivisionError: division by zero
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "test.py", line 4, in <module>
raise Exception('Smelly socks') from e
Exception: Smelly socks
লক্ষ্য করুন নীচের ব্যতিক্রমটিতে কেবল স্ট্যাকট্রেস রয়েছে যেখানে থেকে আমরা আমাদের ব্যতিক্রম উত্থাপন করেছি। আপনার কলার তারা এখনও __cause__
যে ব্যতিক্রম ধরা আছে তার বৈশিষ্ট্যটি অ্যাক্সেসের মাধ্যমে মূল ব্যতিক্রমটি পেতে পারেন ।
with_traceback
অথবা আপনি_ট্র্যাসব্যাক ব্যবহার করতে পারেন ।
try:
1 / 0
except ZeroDivisionError as e:
raise Exception('Smelly socks').with_traceback(e.__traceback__)
এই ফর্মটি ব্যবহার করে, আপনার কলার যে ব্যতিক্রমটি ধরবে সেটির ট্রেসব্যাকটি যেখানে আসল ত্রুটি ঘটেছে error
Traceback (most recent call last):
File "test.py", line 2, in <module>
1 / 0
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "test.py", line 4, in <module>
raise Exception('Smelly socks').with_traceback(e.__traceback__)
File "test.py", line 2, in <module>
1 / 0
Exception: Smelly socks
লক্ষ্য করুন নীচের ব্যতিক্রমটিতে লাইন রয়েছে যেখানে আমরা অবৈধ বিভাগটি সম্পাদন করেছি এবং সেই রেখার পাশাপাশি যেখানে আমরা ব্যতিক্রমটিকে পুনরায় সাজাই।