আপনি raise স্টেটমেন্ট ব্যবহার করেหลายভাবে এক্সসেপশন raise করতে পারেন। raise স্টেটমেন্টের সাধারণ সিনট্যাক্স:
সিনট্যাক্স
raise [Exception [, args [, traceback]]]
এখানে, Exception হলো এক্সসেপশনের টাইপ (যেমন NameError) এবং argument হলো এক্সসেপশন আর্গুমেন্টের মান। আর্গুমেন্ট ঐচ্ছিক; না দেওয়া থাকলে None হয়।
শেষ আর্গুমেন্ট traceback ও ঐচ্ছিক (অবহিত প্র্যাক্টিসে কম ব্যবহৃত), এবং উপস্থিত থাকলে এক্সসেপশনের জন্য ব্যবহৃত ট্রেসব্যাক অবজেক্ট।
উদাহরণ
এক্সসেপশন হতে পারে একটি স্ট্রিং, ক্লাস বা অবজেক্ট। পাইথন کور যে এক্সসেপশনগুলো raise করে অধিকাংশই ক্লাস, যার আর্গুমেন্ট হলো সেই ক্লাসের একটি ইনস্ট্যান্স। নতুন এক্সসেপশন ডিফাইন করা খুব সহজ:
def functionName(level):
if level < 1:
raise "Invalid level!", level
# এই কোড এক্সিকিউট হবে না যদি এক্সসেপশন raise করা হয়
নোট - এক্সসেপশন ক্যাচ করতে "except" ক্লজ অবশ্যই থ্রোন এক্সসেপশনের সাথে মিলতে হবে (ক্লাস অবজেক্ট বা সিম্পল স্ট্রিং)। উপরের এক্সসেপশন ক্যাচ করতে except ক্লজ এইভাবে লিখতে হবে:
try:
# Business Logic here...
except "Invalid level!":
# Exception handling here...
else:
# Rest of the code here...