TRY & CATCH से errors संभालें!

SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

Meghan Kwartler

IT Consultant

Errors handle करें या नहीं

Error handling क्या है?

  • Errors का अनुमान, पहचान और समाधान
  • Execution का सामान्य flow बनाए रखता है
  • शुरुआत के design में शामिल होता है

Error handling न हो तो क्या होता है?

  • अचानक shutdown या execution रुक जाता है
  • बेकार generic messages मिलते हैं, संदर्भ नहीं मिलता
SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

चलो TRY करें

ALTER PROCEDURE dbo.cusp_TripSummaryCreate
  @TripDate nvarchar(30),
  @RideHrs numeric,

@ErrorMsg nvarchar(max) = null OUTPUT
AS BEGIN BEGIN TRY INSERT INTO TripSummary (Date, TripHours) VALUES (@TripDate, @RideHrs) END TRY ........
SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

अब CATCH की बारी

ALTER PROCEDURE dbo.cusp_TripSummaryCreate
  @TripDate nvarchar(30),
  @RideHrs numeric, 
  @ErrorMsg nvarchar(max) = null OUTPUT
AS
BEGIN
  BEGIN TRY
      INSERT INTO TripSummary (Date, TripHours)
      VALUES (@TripDate, @RideHrs)
  END TRY
  BEGIN CATCH
      SET @ErrorMsg = 'Error_Num: ' +
      CAST (ERROR_NUMBER() AS varchar) +
      ' Error_Sev: ' + 
      CAST(ERROR_SEVERITY() AS varchar) +  
      ' Error_Msg: ' + ERROR_MESSAGE()
  END CATCH
END
SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

ERROR दिखाएँ...

DECLARE @ErrorMsgOut as nvarchar(max)

EXECUTE dbo.cusp_TripSummaryCreate 
        @TripDate = '1/32/2018',
        @RideHrs = 100,
        @ErrorMsg = @ErrorMsgOUT OUTPUT

SELECT @ErrorMsgOut as ErrorMessag
ErrorMessage
-------------------------------------------------
Error_Num: 241 Error_Sev: 16 
Error_Msg: Conversion failed when converting date and/or time from 
           character string
SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

THROW बनाम RAISERROR

THROW

  • SQL Server 2012 में जोड़ा गया
  • सरल और उपयोग में आसान
  • इसके बाद की statements execute नहीं होंगी

RAISERROR

  • SQL Server 7.0 में जोड़ा गया
  • नया error बनाता है और original error का detail नहीं मिलता (जैसे जिस line पर error हुआ)
  • इसके बाद की statements execute हो सकती हैं
SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

अब आपकी CATCH करने की बारी!

SQL Server में फंक्शंस और स्टोरड प्रोसीजर्स लिखना

Preparing Video For Download...