'PostgreSQL - SQL state: 42601 syntax error Character: 316

I would like to know how to resolve this syntax error. I've tried lots of ways, however, when I try to compile my function a message SQL 42601 is displayed.

The code that I use:

create or replace PROCEDURE SP_Generate_EventToken(EventId bigint) AS $$

DECLARE TokenCount int;
DECLARE Success int;
DECLARE SerialNo int=0;

BEGIN
    BEGIN TRY
        SET @Success = 0;
        --Get Available Token count
        SELECT @TCNT = COUNT(Field1) FROM TbECT WHERE Field2 = 0;

        IF EventId > 0
        BEGIN

        SELECT SerialNo=(SerialNo) from TbDefault
            --Get Generated Token Count
            SELECT @TokenCount = COUNT(Id) FROM TbComplementaryClaim WHERE [EventId] = EventId

            --Get Guest Count
            SELECT @GUESTNO = (CASE WHEN TokenType = 0 THEN [NoOfGuests] WHEN TokenType = 1 THEN 1 WHEN TokenType = 2 THEN [NoOfGuests] END), @TokenType = TokenType, @GUESTNOC = [NoOfGuests]  FROM [dbo].[TbComplementaryEvents] WHERE [Id] = @EventId

            SET @GUESTNO = @GUESTNO - @TokenCount
            
                IF @GUESTNO > 0
                BEGIN
                    BEGIN TRANSACTION

                    --Reset all token
                    IF @TCNT < @GUESTNO
                    BEGIN
                        UPDATE TbECT SET Field2 = 0
                    END

                    COMMIT TRANSACTION 

                END
            
        END
    END TRY
        
    
END;
$$ LANGUAGE plpgsql;

Error message I receive:

ERROR:  syntax error at or near "TRY"
LINE 14:     BEGIN TRY;
                   ^
SQL state: 42601
Character: 316

What is wrong? How can I solve this problem?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source