🔒 SQL Server Error Handling using TRY...CATCH – हिंदी में पूरी जानकारी
🔑 Memory में रखें (परिभाषा)
SQL Server में TRY...CATCH block का उपयोग errors को पकड़ने (handle) और proper message/log देने के लिए किया जाता है। यह runtime errors को gracefully manage करने का तरीका है।
🧾 Syntax
BEGIN TRY
-- आपकी main SQL Query
END TRY
BEGIN CATCH
-- Error Handling Logic
SELECT ERROR_NUMBER() AS ErrorNumber,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH
📘 Example 1: Divide by Zero Error
BEGIN TRY
DECLARE @a INT = 10, @b INT = 0;
SELECT @a / @b AS Result;
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorCode,
ERROR_MESSAGE() AS ErrorDetail;
END CATCH
📘 Example 2: Table Insert with Error Handling
CREATE TABLE Departments (
ID INT PRIMARY KEY,
DeptName NVARCHAR(50)
);
BEGIN TRY
INSERT INTO Departments (ID, DeptName) VALUES (1, 'HR');
INSERT INTO Departments (ID, DeptName) VALUES (1, 'Finance'); -- Duplicate ID
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorCode,
ERROR_MESSAGE() AS ErrorDetail;
END CATCH
📋 Common Error Functions
ERROR_NUMBER()
– Error का code देता हैERROR_MESSAGE()
– Error का messageERROR_LINE()
– Line number जहां error आयाERROR_SEVERITY()
– Severity levelERROR_STATE()
– Internal state code
📊 Severity Level (1 से 25 तक)
SQL Server में errors की seriousness को Severity Level के माध्यम से दर्शाया जाता है:
- 1–10: Informational messages (warnings या suggestions)
- 11–16: User-generated errors (input, query errors)
- 17: Insufficient resources (memory, disk आदि)
- 18: Nonfatal internal error (admin attention जरूरी)
- 19: Rare software errors (DBA को ही execute करने की अनुमति)
- 20–25: Fatal errors – Connection break, DB corruption, hardware failure
👉 Generally, users को 11–16 तक के error levels का सामना होता है, बाकि system या admin level पर handle होते हैं।
🧠 INTERVIEW QUESTIONS (with Answers)
- Q: TRY...CATCH का उपयोग क्यों किया जाता है?
Ans: Error handling और debugging के लिए। - Q: ERROR_MESSAGE() क्या return करता है?
Ans: Error से जुड़ा message जो developer समझ सके। - Q: क्या TRY...CATCH के बिना error पकड़ा जा सकता है?
Ans: नहीं, error आएगा और query terminate हो जाएगी। - Q: क्या TRY...CATCH nested हो सकता है?
Ans: हाँ। - Q: Severity level क्या दर्शाता है?
Ans: Error की seriousness (1 से 25 तक)। Higher level → ज्यादा खतरनाक।
📘 यह पोस्ट Job Oriented Academy द्वारा SQL को error-proof और production-ready बनाने में मदद के लिए बनाई गई है।
0 Comments