PL/SQL-এ RAISE এবং RAISE_APPLICATION_ERROR দুটি গুরুত্বপূর্ণ কমান্ড, যা এক্সেপশন হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। এই কমান্ডগুলি কোডের চলাকালীন সময়ে কোন সমস্যা বা ত্রুটি ঘটলে ত্রুটির সূচনা করতে বা ব্যবহারকারীর জন্য কাস্টম ত্রুটি মেসেজ তৈরি করতে সাহায্য করে।
১. RAISE
RAISE কমান্ডটি সাধারণত exception ত্রুটি ফেলে দেয় এবং এই এক্সেপশনটি EXCEPTION ব্লকে ক্যাচ করা হয়। এটি একটি predefined বা user-defined exception হতে পারে। যখন RAISE ব্যবহার করা হয়, তখন তা ত্রুটি ছুঁড়ে দিয়ে ত্রুটি মেসেজের সাথে বা শুধুমাত্র exception নির্দিষ্ট করে কোড থামিয়ে দেয়।
RAISE এর Syntax:
RAISE [exception_name];
- exception_name: এখানে আপনি যে এক্সেপশনটি তোলাতে চান সেটি উল্লেখ করবেন।
উদাহরণ:
DECLARE
v_salary NUMBER := 5000;
BEGIN
IF v_salary < 10000 THEN
RAISE salary_too_low;
END IF;
EXCEPTION
WHEN salary_too_low THEN
DBMS_OUTPUT.PUT_LINE('Salary is too low!');
END;
এখানে salary_too_low এক্সেপশনটি RAISE দ্বারা প্রবর্তিত হচ্ছে, এবং যদি বেতন ১০,০০০ টাকার নিচে থাকে, তাহলে এটি এক্সেপশনটিকে ক্যাচ করে এবং একটি মেসেজ প্রিন্ট করবে।
২. RAISE_APPLICATION_ERROR
RAISE_APPLICATION_ERROR কমান্ডটি ব্যবহারকারী-নির্ধারিত ত্রুটি মেসেজ তৈরি করার জন্য ব্যবহৃত হয়। এটি একটি নির্দিষ্ট ত্রুটি কোড এবং কাস্টম ত্রুটি মেসেজ সহ ত্রুটি প্রবর্তন করে। এই কমান্ডটি SQLCODE এবং SQLERRM এর মতো সিস্টেম ডিফাইনড এক্সেপশনগুলি ব্যবহার না করে, কাস্টম ত্রুটি কোড দিয়ে ত্রুটি মেসেজ তৈরি করতে সাহায্য করে।
RAISE_APPLICATION_ERROR সর্বদা ২০০০০ থেকে ২০৯৯৯ পর্যন্ত ত্রুটি কোড দিয়ে কাজ করে।
RAISE_APPLICATION_ERROR এর Syntax:
RAISE_APPLICATION_ERROR(error_number, error_message);
- error_number: একটি ত্রুটি কোড (২০০০০ থেকে ২০৯৯৯ পর্যন্ত)।
- error_message: ত্রুটির সবার উপরের কাস্টম মেসেজ।
উদাহরণ:
DECLARE
v_salary NUMBER := 5000;
BEGIN
IF v_salary < 10000 THEN
RAISE_APPLICATION_ERROR(-20001, 'Salary must be at least 10,000!');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
এখানে, যদি বেতন ১০,০০০ টাকার নিচে থাকে, তাহলে RAISE_APPLICATION_ERROR ব্যবহার করে কাস্টম ত্রুটি কোড (-20001) এবং মেসেজ 'Salary must be at least 10,000!' প্রদান করা হয়। EXCEPTION ব্লকটি ত্রুটি মেসেজ প্রিন্ট করবে।
RAISE এবং RAISE_APPLICATION_ERROR এর মধ্যে পার্থক্য
| Feature | RAISE | RAISE_APPLICATION_ERROR |
|---|---|---|
| Purpose | সাধারণ এক্সেপশন ছুঁড়ে দেওয়া | কাস্টম ত্রুটি কোড এবং মেসেজ সহ এক্সেপশন তৈরি করা |
| Error Code | পূর্বনির্ধারিত (Predefined) এক্সেপশন | কাস্টম কোড (20000 থেকে 20999 পর্যন্ত) |
| Error Message | পূর্বনির্ধারিত মেসেজ | কাস্টম ত্রুটি মেসেজ |
| Usage | সাধারণ বা ব্যবহারকারী-নির্ধারিত এক্সেপশন সৃষ্টিতে ব্যবহার | কাস্টম ত্রুটি কোড এবং মেসেজ তৈরি করতে ব্যবহার |
কোন পরিস্থিতিতে কোনটি ব্যবহার করবেন?
- RAISE: সাধারণ বা predefined এক্সেপশনগুলি ব্যবহার করার জন্য উপযুক্ত, যখন আপনি predefined exception ব্যবহার করে কোডের আউটপুট অথবা ফ্লো নিয়ন্ত্রণ করতে চান।
- RAISE_APPLICATION_ERROR: যখন আপনি একটি নির্দিষ্ট ত্রুটি কোড এবং একটি কাস্টম মেসেজ ব্যবহার করে ত্রুটি পরিস্থিতি সৃষ্টিতে চান, তখন এটি ব্যবহার করা হয়। এটি ব্যবহারকারীর জন্য আরও স্পষ্ট এবং সহজবোধ্য ত্রুটি বার্তা তৈরি করতে সাহায্য করে।
শেষ কথা
RAISE এবং RAISE_APPLICATION_ERROR PL/SQL-এ শক্তিশালী টুল, যা এক্সেপশন হ্যান্ডলিং-এর মাধ্যমে কোডের নিরাপত্তা এবং কার্যকারিতা বৃদ্ধি করতে সাহায্য করে। RAISE সাধারণ এক্সেপশন ছুঁড়ে দিতে ব্যবহৃত হয়, আর RAISE_APPLICATION_ERROR কাস্টম ত্রুটি কোড এবং মেসেজ তৈরি করার জন্য ব্যবহৃত হয়।
Read more