25

Do we have a try catch equivalent in Postgres? I have written some user defined functions that are called by trigger. I (don't) want to ignore errors so that flow does not get interrupted.

Erwin Brandstetter
  • 175,982
  • 27
  • 439
  • 600
FastTurtle
  • 353
  • 1
  • 3
  • 7

1 Answers1

32

The equivalent of TRY-CATCH error handling in PostgreSQL is a block of code in this way:

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
    WHEN condition [ OR condition ... ] THEN
        handler_statements
    [ WHEN condition [ OR condition ... ] THEN
          handler_statements
      ... ]
END;

Have a look at Postgres docs about Trapping errors

If you want to use it in your functions, keep in mind it can only be used inside PL/pgSQL functions.

McNets
  • 23,749
  • 10
  • 48
  • 88