Словили давеча проблем из-за того, что Битрикс падает на ошибки вставке данных в БД через CUser. Ошибки понятна и логична, к самому Битриксу отношения не имеет (дублировалось значение ключа, данные были такие). Но удручило поведение Битрикса - рапорт о неурядице и сразу die(). Зачем, если ошибку можно спокойно обработать на уровне приложения и идти дальше?
С этих позиций вспомнили давнюю мечту, что было бы отлично, если бы Битрикс просто кидал исключение в случае какой-либо ошибки. И даже придумали, как это можно сделать.
Собственно, финт в том, что Битрикс подключает php_interface/dbquery_error.php после возникновения ошибки и записи информации о ней в журнал, но до выхода из скрипта. Соответственно, если в этом файле мы выкинем нужное нам исключение, получим нужный результат
С этих позиций вспомнили давнюю мечту, что было бы отлично, если бы Битрикс просто кидал исключение в случае какой-либо ошибки. И даже придумали, как это можно сделать.
Собственно, финт в том, что Битрикс подключает php_interface/dbquery_error.php после возникновения ошибки и записи информации о ней в журнал, но до выхода из скрипта. Соответственно, если в этом файле мы выкинем нужное нам исключение, получим нужный результат
