Если исключение не поймано в try/catch, оно всплывает по стеку вызовов до глобального обработчика. Если обработчика нет - PHP выдает Fatal Error: "Uncaught Exception" и скрипт завершается.
// Установка глобального обработчика
set_exception_handler(function (Throwable $e) {
error_log($e->getMessage());
http_response_code(500);
echo 'Internal Server Error';
});Фреймворки (Laravel, Symfony) имеют свои exception handler-ы, которые логируют ошибку и возвращают подходящий HTTP-ответ.