Выбор ответа Middle Исключения и ошибки обновлено
Предупреждения и исключения
Вопрос
Как сделать так, чтобы file_get_contents на несуществующий файл бросал исключение, а не только Warning?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: seterrorhandler, превращающий ошибки в ErrorException. Многие встроенные функции сообщают об ошибке предупреждением и возвращают false, исключения нет, и try/catch его не поймает.
Варианты ответа
- Обернуть вызов в
try/catch (Exception)и проверить$e - Поставить
@перед вызовом, тогда предупреждение станет исключением - Включить
display_errors, и предупреждения начнут бросаться set_error_handler, превращающий ошибки вErrorExceptionправильный ответ
Разбор
Многие встроенные функции сообщают об ошибке предупреждением и возвращают false, исключения нет, и try/catch его не поймает. Обработчик set_error_handler может бросать ErrorException, так делают все современные фреймворки. Оператор @ только подавляет вывод, ошибка остаётся незамеченной. display_errors влияет лишь на показ.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.