Тема: Викинути виключення, якщо не можливо створити об'єкт
Привіт всім.
Допоможіть відловити помилку при створенні об'єкта.
class Model1{}
try {
$model = new Model;
} catch (Exception $e) {
exit('no');
}
В даному прикладі створюється екземпляр класу "Model" якого не існує. Мені треба це відловити. Але якщо такий об'єкт не можливо створити буде фатальна помилка, а не виключення, котре я наполеглево намагаюся відловити.
Fatal error: Uncaught Error: Class 'Model' not found in /opt/lampp/htdocs/api/model.php:7 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/api/model.php on line 7
Придумав, ще один механізм, не те що треба, але працює.
if (class_exists('Model', false)) {
exit('yes');
} else {
exit('no');
}
Я вже готовий був використовувати цей спосіб, АЛЕ Є ОДНЕ АЛЕ - я працюю з yii1, де підвантаження моделей відбувається при звернені до неї. Тому class_exists з аргументом autoload=false не буде працювати, а tru видасть фатальну, бо намагатиметься створити об'єкт.
Друзі, що скажете? Як цю помилку можна відловити?