PostgreSQL plpgsql try catch块等效项

Dan*_*sch 5 postgresql plpgsql

PROCEDURE在SQL Server中。这利用了一个try catch块。看起来有点像下面的代码:

        BEGIN TRANSACTION
        BEGIN TRY
        --do stuff here
        COMMIT TRANSACTION
        END TRY
        BEGIN CATCH
        ROLLBACK TRANSACTION
        --do error stuff here
        END CATCH
Run Code Online (Sandbox Code Playgroud)

经过研究,似乎postgres没有使用try catch。有没有办法像SQL Server一样在postgres中处理此问题?