Database Tutorials Error Handling এবং RAISERROR ফাংশন গাইড ও নোট

290

T-SQL (Transact-SQL) তে Error Handling গুরুত্বপূর্ণ একটি অংশ, কারণ এটি ডেটাবেসের ত্রুটির মোকাবিলা এবং সেগুলোর সঠিক সমাধান নিশ্চিত করতে সাহায্য করে। RAISERROR ফাংশন ব্যবহার করে আপনি কাস্টম ত্রুটি বার্তা তৈরি করতে এবং সেগুলি ডাটাবেসে ফিরিয়ে দিতে পারেন, যা পরে প্রোগ্রাম বা ব্যবহারকারী দ্বারা হ্যান্ডল করা যায়।

T-SQL তে Error Handling এবং RAISERROR ফাংশন সম্পর্কে বিস্তারিত আলোচনা করা হলো:


১. Error Handling in T-SQL

T-SQL তে ত্রুটি বা Error Handling করার জন্য TRY...CATCH ব্লক ব্যবহৃত হয়। এটি SQL কোডের মধ্যে ত্রুটি ধরা এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। যখন TRY ব্লকের মধ্যে কোনো ত্রুটি ঘটে, তখন CATCH ব্লকটি কার্যকর হয় এবং ত্রুটির তথ্য হ্যান্ডেল করা হয়।

TRY...CATCH স্টেটমেন্ট

TRY...CATCH স্টেটমেন্ট দুটি ব্লক দিয়ে গঠিত:

  1. TRY ব্লক: যেখানে আপনি কোড লিখবেন এবং যদি সেখানে কোনো ত্রুটি ঘটে, তাহলে তা CATCH ব্লকে চলে যাবে।
  2. CATCH ব্লক: এই ব্লকে ত্রুটি সম্পর্কে তথ্য প্রাপ্তি এবং সেগুলোর সমাধান বা লগ করা হয়।

সিনট্যাক্স:

BEGIN TRY
    -- আপনার T-SQL কোড
END TRY
BEGIN CATCH
    -- ত্রুটি হ্যান্ডলিং কোড
    PRINT ERROR_MESSAGE(); -- ত্রুটির বার্তা প্রিন্ট করা
END CATCH;

ERROR_MESSAGE() ফাংশন

  • ERROR_MESSAGE() ফাংশনটি CATCH ব্লকে ব্যবহৃত হয় এবং এটি ত্রুটির বিস্তারিত বার্তা প্রদান করে।

২. RAISERROR ফাংশন

RAISERROR ফাংশন ব্যবহার করে আপনি কাস্টম ত্রুটি বার্তা তৈরি করতে পারেন এবং তা ডাটাবেসে বা অ্যাপ্লিকেশনে রিটার্ন করতে পারেন। এটি ডেটাবেসের মধ্যে একটি ত্রুটি সৃষ্টি করে, যাতে SQL Server ত্রুটির বার্তা জেনারেট করে এবং সেটা ব্যবহারকারী বা অ্যাপ্লিকেশনের কাছে পাঠায়।

RAISERROR সিনট্যাক্স:

RAISERROR (message_string, severity, state);
  • message_string: ত্রুটি বার্তা বা মেসেজ যা আপনি তৈরি করবেন।
  • severity: ত্রুটির গুরুত্ব (০ থেকে ২৫ পর্যন্ত মান).
  • state: ত্রুটির অবস্থা (০ থেকে ২৫ পর্যন্ত মান).

Severity:

  • 0-18: সাধারণ ত্রুটি।
  • 19-25: গুরুতর ত্রুটি, যা ডেটাবেস অ্যাডমিনিস্ট্রেটর বা টেকনিক্যাল সাপোর্ট দ্বারা সমাধান করতে হতে পারে।

RAISERROR উদাহরণ:

RAISERROR('This is a custom error message', 16, 1);

এটি একটি কাস্টম ত্রুটি বার্তা তৈরি করবে এবং severity 16 এবং state 1 সহ ত্রুটির বার্তা ফিরিয়ে দেবে।


৩. RAISERROR এর ব্যবহার

RAISERROR ফাংশনটি Error Handling এর মধ্যে কাস্টম ত্রুটি বার্তা এবং লগিং প্রক্রিয়া তৈরি করতে ব্যবহৃত হয়। আপনি এটি সঠিক ত্রুটির বার্তা ফেলে SQL কোডে ত্রুটি পরিস্থিতি নির্দেশ করার জন্য ব্যবহার করতে পারেন।

উদাহরণ ১: কাস্টম ত্রুটি বার্তা

BEGIN TRY
    -- কিছু ত্রুটিপূর্ণ কোড
    DECLARE @Age INT = -1;
    IF @Age < 0
        RAISERROR('Age cannot be negative!', 16, 1);
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE();  -- ত্রুটি বার্তা প্রিন্ট করা
END CATCH;

এখানে, যদি Age নেগেটিভ হয়, তাহলে RAISERROR একটি কাস্টম ত্রুটি বার্তা তৈরি করবে এবং সেটি CATCH ব্লকে ধরা হবে।


উদাহরণ ২: RAISERROR সহ একটি ট্রানজ্যাকশন

BEGIN TRY
    BEGIN TRANSACTION;

    -- কিছু অপারেশন
    UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1;
    
    -- কাস্টম ত্রুটি বার্তা
    IF @@ERROR <> 0
        RAISERROR('Error occurred during transaction, rolling back!', 16, 1);
    
    COMMIT TRANSACTION;
END TRY
BEGIN CATCH
    -- রোলব্যাক এবং ত্রুটি বার্তা প্রিন্ট করা
    ROLLBACK TRANSACTION;
    PRINT ERROR_MESSAGE();
END CATCH;

এখানে, যদি কোনো ত্রুটি ঘটে, তাহলে ট্রানজ্যাকশন রোলব্যাক হবে এবং কাস্টম ত্রুটি বার্তা প্রিন্ট হবে।


৪. RAISERROR এবং THROW এর মধ্যে পার্থক্য

  • RAISERROR এবং THROW উভয়ই ত্রুটি তৈরি করতে ব্যবহৃত হয়, তবে কিছু পার্থক্য রয়েছে:
    • RAISERROR: আপনি কাস্টম ত্রুটি বার্তা এবং severity level উল্লেখ করতে পারেন এবং এটি প্রোগ্রাম ফ্লো চালিয়ে যেতে সাহায্য করে। তবে, RAISERROR ত্রুটির পরে কোড চালানো অব্যাহত থাকে (যদি আপনি TRY...CATCH না ব্যবহার করেন)।
    • THROW: এটি SQL Server 2012 এবং পরবর্তী সংস্করণে পরিচিত এবং এটি সোজাসুজি ত্রুটি তৈরি করে এবং তখনই ট্রানজ্যাকশনটি থামিয়ে দেয়। এটি CATCH ব্লকের মাধ্যমে পুনরায় ত্রুটি থ্রো করতে সহায়ক।

উদাহরণ: THROW এর ব্যবহার

BEGIN TRY
    THROW 50000, 'Custom error using THROW', 1;
END TRY
BEGIN CATCH
    PRINT ERROR_MESSAGE();
END CATCH;

এটি একটি ত্রুটি তৈরি করবে এবং ত্রুটি বার্তা প্রিন্ট করবে।


সারাংশ

  • Error Handling T-SQL এর একটি গুরুত্বপূর্ণ অংশ যা ত্রুটি থেকে প্রোগ্রামের কার্যকারিতা বজায় রাখতে সাহায্য করে।
  • RAISERROR ফাংশন ব্যবহার করে আপনি কাস্টম ত্রুটি বার্তা তৈরি করতে পারেন এবং প্রয়োজনে SQL কোডে তা থ্রো করতে পারেন।
  • TRY...CATCH ব্লক ব্যবহার করে T-SQL-এ ত্রুটি হ্যান্ডলিং করা যায় এবং ত্রুটির সঠিক বার্তা এবং লগিং পরিচালনা করা যায়।
  • RAISERROR ত্রুটি সৃষ্টির জন্য ব্যবহৃত হয়, তবে THROW নতুন ত্রুটি তৈরি করার জন্য একটি বিকল্প ফাংশন যা আরো সরলভাবে কাজ করে।

Error Handling এবং RAISERROR ফাংশনটি কার্যকরভাবে ত্রুটি পরিচালনা এবং সিস্টেমের স্থিতিশীলতা নিশ্চিত করার জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...