THROW ফাংশনের ব্যবহার

Exception Handling - টি-এসকিউএল (T-SQL) - Database Tutorials

309

T-SQL এর THROW স্টেটমেন্টটি ডাটাবেসের মধ্যে ত্রুটি বা এক্সেপশন তৈরি করতে ব্যবহৃত হয়। এটি একটি নির্দিষ্ট ত্রুটি বার্তা প্রেরণ করতে বা একটি বিদ্যমান ত্রুটি পুনরায় ফেলে দিতে সক্ষম। THROW সাধারণত TRY...CATCH ব্লকের মধ্যে ব্যবহৃত হয় এবং ত্রুটি হ্যান্ডলিং করতে সহায়তা করে।

THROW দুটি প্রধান ব্যবহারের ক্ষেত্রে ব্যবহার করা যেতে পারে:

  1. নতুন ত্রুটি তৈরি করা: একটি কাস্টম ত্রুটি বার্তা তৈরি এবং ফেলা।
  2. বিদ্যমান ত্রুটি পুনরায় ফেলা: কোনো বিদ্যমান ত্রুটি পুনরায় নিক্ষেপ করা।

১. নতুন ত্রুটি তৈরি করা

আপনি THROW স্টেটমেন্ট ব্যবহার করে একটি নতুন ত্রুটি তৈরি করতে পারেন এবং একটি কাস্টম ত্রুটি বার্তা প্রদর্শন করতে পারেন। যখন একটি ত্রুটি তৈরি করা হয়, তখন Error Number, Message, এবং State নির্দিষ্ট করা হয়।

সিনট্যাক্স:

THROW error_number, message, state;
  • error_number: ত্রুটির জন্য একটি নির্দিষ্ট ত্রুটি কোড (১ থেকে ২৫৫ এর মধ্যে হতে পারে)।
  • message: ত্রুটি বার্তা যা ব্যবহারকারীকে দেখানো হবে।
  • state: একটি ইনটিজার মান যা ত্রুটির অবস্থাকে চিহ্নিত করে (এটি 0 থেকে 255 এর মধ্যে হতে পারে, সাধারণত 0 ব্যবহৃত হয়)।

উদাহরণ:

BEGIN TRY
    -- কোনো কনডিশন চেক করতে হবে
    IF (1 = 1) -- শর্ত মিথ্যা হলে ত্রুটি তৈরি
    BEGIN
        THROW 50000, 'Custom error message: Something went wrong!', 1;
    END
END TRY
BEGIN CATCH
    PRINT 'Error occurred: ' + ERROR_MESSAGE();
END CATCH;

এখানে:

  • THROW স্টেটমেন্টটি ত্রুটি কোড 50000 এবং কাস্টম বার্তা 'Custom error message: Something went wrong!' তৈরি করে।
  • BEGIN TRY...END TRY ব্লকে যদি কোনো ত্রুটি ঘটে, তবে তা BEGIN CATCH...END CATCH ব্লকে ধরা হবে এবং ত্রুটির বার্তা প্রিন্ট হবে।

২. বিদ্যমান ত্রুটি পুনরায় ফেলা

আপনি যদি একটি CATCH ব্লকে কোনো ত্রুটি ধরা এবং পরে সেটি পুনরায় পুনরাবৃত্তি করতে চান, তাহলে THROW ব্যবহার করতে পারেন। এটি মূলত আগের ত্রুটির পুনঃব্যবহার করে এবং ত্রুটি বার্তাটি সেই অবস্থায় রেখে দেয়।

সিনট্যাক্স:

THROW;

এটি পূর্ববর্তী CATCH ব্লকে ধরা ত্রুটিকে পুনরায় ছুঁড়ে ফেলে।

উদাহরণ:

BEGIN TRY
    -- কিছু কোড যা ত্রুটি সৃষ্টি করবে
    DECLARE @x INT = 1 / 0; -- Division by zero error
END TRY
BEGIN CATCH
    PRINT 'Error: ' + ERROR_MESSAGE();
    THROW;  -- পুনরায় আগের ত্রুটি ছুঁড়ে ফেলা হবে
END CATCH;

এখানে:

  • THROW কোনো ত্রুটি কোড বা বার্তা ছাড়াই পূর্বের ত্রুটি পুনরায় ছুঁড়ে ফেলে। এতে ত্রুটির তথ্য (যেমন Error Number, Message, এবং State) কেবল আগের অবস্থায় ফেরত পাওয়া যাবে।

THROW এর সুবিধাসমূহ

  1. কাস্টম ত্রুটি বার্তা প্রদান: THROW ব্যবহার করে আপনি ব্যবহারকারীদের জন্য কাস্টম ত্রুটি বার্তা তৈরি করতে পারেন, যা সমস্যাটি স্পষ্টভাবে ব্যাখ্যা করে।
  2. ত্রুটি হ্যান্ডলিং: TRY...CATCH ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং আরও কার্যকরী হয়। THROW ব্যবহার করে আপনি ধরা পড়া ত্রুটিকে পুনরায় ছুঁড়ে ফেলতে পারেন বা নতুন ত্রুটি তৈরি করতে পারেন।
  3. ত্রুটি প্রক্রিয়াকরণ এবং লগিং: ত্রুটি গুলি লোগ বা নির্দিষ্ট ডেটাবেস টেবিলেও সংরক্ষণ করা যেতে পারে এবং এভাবে আরও উন্নত ত্রুটি ট্র্যাকিং করা সম্ভব।

সারাংশ

THROW স্টেটমেন্ট T-SQL তে একটি গুরুত্বপূর্ণ কমান্ড যা ত্রুটি তৈরি এবং হ্যান্ডলিং প্রক্রিয়া সহজ করে। আপনি এটি ব্যবহার করতে পারেন:

  • নতুন ত্রুটি তৈরি: কাস্টম ত্রুটি বার্তা এবং কোড প্রদান করার জন্য।
  • বিদ্যমান ত্রুটি পুনরায় ফেলা: CATCH ব্লকে ধরা ত্রুটিকে পুনরায় ফেলার জন্য।

এটি আপনার ডেটাবেস অ্যাপ্লিকেশনে উন্নত ত্রুটি হ্যান্ডলিং এবং ডিবাগিং করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...