|
обработка ошибок в хп
|
|||
---|---|---|---|
#18+
обрабатываю ошибки таким образом: CODE Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
таких манипуляций мне хватает для того чтобы обработать ошибку и в дальнейшем ее исправить немного тяжело каждый раз использовать такую конструкцию в функции для обработки ошибок. есть несколько вопросов: 1. можно ли уменьшить код отлова ошибки? если да, то как? 2. может быть я что-то не учел в отлове ошибок? подскажите что? 3. есть ли у вас какие то "лайф хаки, функции обертки" по отлову ошибок? 4. может мой подход не правильный? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 15:17 |
|
обработка ошибок в хп
|
|||
---|---|---|---|
#18+
alfangur, обработка ошибки в плпгскл -- это неявный скл-сейвпойнт (на последнем бегине) -- и как следствие -- изменение номера транзакции (сабтранзакции). что в высоконагруженных проектах с большим объемом и большим темпом роста счетчика транзакций обостряет проблему фриза. до 9.6. -- крайне остро. т.е. 1. следует избегать перехвата ошибок "вообще". заменяя её пречеками (например читкой системных) и т.п. вещи. 2. перехватчики ставить на узкие обходные пути, не перекрытые обычным чеком. (с тем, чтобы сессия попадала на сейвпойнт в крайнем случае) что идёт поперек желания перехватить и обработать всё, что только можно. а некоторые вещи из 2 осложнены системными багами пг (таблица может быть видна в системных, но недоступна для дмл -- в силу неявной ридкоммитодности ддл при любом уровне изоляции исполнившей транзакции). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 16:09 |
|
обработка ошибок в хп
|
|||
---|---|---|---|
#18+
alfangurнемного тяжело каждый раз использовать такую конструкцию в функции для обработки ошибок. как следствие -- в большинстве хранимок перехватчики (всего) -- вредны. и желание их везде воткнуть -- вредительство и диверсия. (по крайней мере в пг пока -- при сущ-ей реализации обработки ошибок в плпгскл / существующей зависимости объемов фриза от прироста счетчика транзакций ) по возможности отдавайте ошибки приложению(ям). исключения -- длинные транзакции , пакетные и т.п. работы. всё имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2018, 16:20 |
|
обработка ошибок в хп
|
|||
---|---|---|---|
#18+
благодарю за информативный ответ. так глубоко не задумывался над проблемой. автор1. следует избегать перехвата ошибок "вообще". заменяя её пречеками (например читкой системных) и т.п. вещи.что такое "пречеками", "читкой системных"? сомневаюсь в правильности своей трактовки! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 12:19 |
|
обработка ошибок в хп
|
|||
---|---|---|---|
#18+
alfangurблагодарю за информативный ответ. так глубоко не задумывался над проблемой. автор1. следует избегать перехвата ошибок "вообще". заменяя её пречеками (например читкой системных) и т.п. вещи.что такое "пречеками", "читкой системных"? сомневаюсь в правильности своей трактовки! чессгря учить детей колхозу -- крайне некомфортная позиция пишите везде где вам надо честные перехваты. а по мере проблем со скоростью/или фризом БД -- начинайте думать, где можно обойтись без "общего" обработчика (с перехватом в рукаве "редких случаев"). по возможности -- максимально честно. (вы попадете в зависимость от принятых предположений. чем шире допуски -- тем жестче будет посадка) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2018, 13:04 |
|
|
start [/forum/topic.php?fid=53&fpage=57&tid=1995866]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
3ms |
others: | 292ms |
total: | 412ms |
0 / 0 |