Я играю с исключениями в PHP. Например, у меня есть скрипт, который читает запрос $ _GET и загружает файл; Если файл не существует, новое исключение должно быть брошено:PHP Неустранимая ошибка: исключение «исключение»
if (file_exists($_SERVER['DOCUMENT_ROOT'] .'/'.$_GET['image'])) {
// Something real amazing happens here.
}
else {
throw new Exception("The requested file does not exists.");
}
Проблема заключается в том, что, когда я пытаюсь поставить в несуществующий файл для теста, я получил ошибку 500 вместо сообщения исключений , Журнал сервера следующий:
[09-Jul-2013 18:26:16 UTC] PHP Fatal error: Uncaught exception 'Exception' with message 'The requested file does not exists.' in C:\sites\wonderfulproject\script.php:40
Stack trace:
#0 {main}
thrown in C:\sites\wonderfulproject\script.php on line 40
Интересно, не хватает ли я чего-то реального здесь.
Я проверил этот вопрос PHP fatal error: Uncaught exception 'Exception' with message, но это не совсем так, как моя проблема, и не имеют краткого ответа.
Помогите, пожалуйста?
* EDIT *
Это кажется, что это что-то связанное с throw
ключевым словом. Например, если я использую echo
, я получил сообщение, напечатанное на экране, например:
Исключение «Исключение» с сообщением «Файл не существует». в C: \ sites \ wonderfulproject \ script.php: 183 Трассировка стека: # 0 {main}
Почему это?
** EDIT 2 **
Благодаря @Orangepill, я получил лучшее представление о том, как обрабатывать исключения. И я нашел превосходную музыку из nettuts, которая помогла много. Ссылка: http://net.tutsplus.com/tutorials/php/the-ins-and-outs-of-php-exceptions/
Ваш журнал сообщает вам, что именно вы хотите, чтобы сказать, в чем проблема? –
'file_exists', очевидно, возвратил' false', вероятно, потому что файл действительно * не * существует. – deceze
@DanyCaissy Проблема в том, что я получаю 500-Internal Server Error, вместо исключения с моим сообщением и трассировкой стека на экране. – darksoulsong