I';我试图在PHP中处理一个异常,但仍然显示堆栈错误,而不是由catch处理

I';我试图在PHP中处理一个异常,但仍然显示堆栈错误,而不是由catch处理,php,zend-framework,error-handling,Php,Zend Framework,Error Handling,我正在调用一个我知道可能导致错误的方法,我正在尝试通过将代码包装在try/catch语句中来处理错误 …但我的问题是错误没有得到处理。查看应用程序时,我发现以下错误 ( ! ) Fatal error: Class 'Application_Model_NonExistent' not found in /Library/WebServer/Documents/ZendTest/application/controllers/TestController.php on line 23 有人能

我正在调用一个我知道可能导致错误的方法,我正在尝试通过将代码包装在try/catch语句中来处理错误

…但我的问题是错误没有得到处理。查看应用程序时,我发现以下错误

( ! ) Fatal error: Class 'Application_Model_NonExistent' not found in /Library/WebServer/Documents/ZendTest/application/controllers/TestController.php on line 23
有人能解释为什么会发生这种情况,以及我如何让它发挥作用吗


谢谢

这不是一个例外,这是一个致命的错误,意味着你不能像那样抓住它。根据定义,
致命的
是不可恢复的。

这不是一个例外,这是一个
致命的
错误,意味着你不能像那样捕捉它。根据定义,致命的是不可恢复的。

错误和异常不是一回事。异常被抛出并意味着被捕获,其中错误通常是不可恢复的,并且会被触发


如果由于错误而需要进行一些清理,可以使用

错误和异常不是一回事。异常被抛出并意味着被捕获,其中错误通常是不可恢复的,并且会被触发


如果由于错误需要进行一些清理,可以使用异常和错误是不同的。有一个异常类,您正在使用它,$e是它的对象


若要处理错误,请检查php zend framework中的错误处理。但在这里,这是一个致命的错误,你必须纠正它,不能处理。

异常和错误是不同的事情。有一个异常类,您正在使用它,$e是它的对象

若要处理错误,请检查php zend framework中的错误处理。但在这里,这是一个致命的错误,您必须纠正它,无法处理。

使用

if (class_exists('Application_Model_NonExistent')) {
    $test = new Application_Model_NonExistent;
} else {
    echo 'class not found.';
}
就像@prodigitalson所说的,你不能抓住那个致命的错误。

使用

if (class_exists('Application_Model_NonExistent')) {
    $test = new Application_Model_NonExistent;
} else {
    echo 'class not found.';
}

正如@prodigitalson所说,您无法捕获该致命错误。

的可能副本的可能副本也可能在else中引发异常,但他已经在尝试“捕获”异常,这意味着他希望继续处理。我猜他也可以在else中抛出异常,但他已经在尝试“捕获”异常,这意味着他希望继续处理。我猜