我正在玩 PHP 中的异常。例如,我有一个读取 $_GET 请求并加载文件的脚本;如果文件不存在,应该抛出一个新的异常:
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但它不太像我的问题,并且没有简明的答案。
请帮忙?
* 编辑 *
这似乎与throw
关键字有关。echo
例如,如果我使用,我会在屏幕上打印消息,如下所示:
带有消息“文件不存在”的异常“异常”。在 C:\sites\wonderfulproject\script.php:183 堆栈跟踪:#0 {main}
这是为什么?
** 编辑 2 **
感谢@Orangepill,我对如何处理异常有了更好的理解。我从 nettuts 那里找到了一个很棒的 tut,它很有帮助。链接: http: //net.tutsplus.com/tutorials/php/the-ins-and-outs-of-php-exceptions/