Re: The P0004 assert_failure exception assert_failure exception seems to be unhandleable
От | Bryn Llewellyn |
---|---|
Тема | Re: The P0004 assert_failure exception assert_failure exception seems to be unhandleable |
Дата | |
Msg-id | 5857CBE7-3B3C-4023-B8C3-D179D1404209@yugabyte.com обсуждение исходный текст |
Ответ на | Re: The P0004 assert_failure exception assert_failure exception seems to be unhandleable ("David G. Johnston" <david.g.johnston@gmail.com>) |
Список | pgsql-general |
david.g.johnston@gmail.com wrote:bryn@yugabyte.com wrote:
«
Note that ASSERT is meant for detecting program bugs, not for reporting ordinary error conditions. Use the RAISE statement, described above, for that.
»
But it takes quite a stretch of the imagination to infer that this means that the "assert_failure" exception cannot be handled.
Agreed. But as the pl/pgsql section “trapping errors” notes:
“The special condition name OTHERS matches every error type except QUERY_CANCELED and ASSERT_FAILURE. (It is possible, but often unwise, to trap those two error types by name.)”
i.e., you must trap it explicitly, not as part of others.
Thanks again, David. I don't yet know my way around the overall PG doc well enough to make sure that I read everything that relates to my current interest. Thanks for reminding me about this:
43.6.8. Trapping Errors
in the section:
43.6. Control Structures
in chapter:
Chapter 43. PL/pgSQL — SQL Procedural Language
All is clear now. And the caveat "It is possible, but often unwise, to trap those two error types by name" makes sense.
В списке pgsql-general по дате отправления: