Re: Nicely exiting PG_TRY and PG_CATCH
От | Tom Lane |
---|---|
Тема | Re: Nicely exiting PG_TRY and PG_CATCH |
Дата | |
Msg-id | 3353555.1665177543@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Nicely exiting PG_TRY and PG_CATCH (Mikhail Gribkov <youzhick@gmail.com>) |
Ответы |
Re: Nicely exiting PG_TRY and PG_CATCH
|
Список | pgsql-hackers |
Mikhail Gribkov <youzhick@gmail.com> writes: > Usually it's not a good idea to exit PG_TRY() block via return statement. > Otherwise it would leave PG_exception_stack global variable in a wrong > state and next ereport() will jump to some junk address. Yeah, you can't return or goto out of the PG_TRY part. > Another suspicious case is PG_CATCH block in jsonb_plpython.c: This should be OK. The PG_CATCH and PG_FINALLY macros are set up so that we've fully restored that state *before* we execute any of the error-handling code. It would be basically impossible to have a guarantee that CATCH blocks never throw errors; they'd be so restricted as to be near useless, like signal handlers. regards, tom lane
В списке pgsql-hackers по дате отправления: