在ZF2中使用try / catch

时间:2014-10-13 12:55:20

标签: zend-framework zend-form zend-db

从zend文档中我了解到try catch可以实现。当我使用zend异常时,即使尝试正在工作也无法捕获

try { 
    loadClass() with a non-existant class will cause an exception 
    to be thrown in Zend_Loader: 
    Zend_Loader::loadClass('nonexistantclass'); 
} catch (Zend_Exception $e) { 
    echo "Caught exception"; 
    // Other code to recover from the error 
}

错误:致命错误:Class' Album \ Controller \ Zend \ Loader \ Loader'在第22行的C:\ wamp \ www \ zf \ module \ Album \ src \ Album \ Controller \ AlbumController.php中找不到 没有发生捕获错误消息正在显示

修改

但是当我按照以下代码抛出异常时,我将消息视为错误。

try { throw new \Exception("My exception"); } catch (Exception $e) { echo "Caught exception $e\n"; exit; }

1 个答案:

答案 0 :(得分:1)

这里有一些问题。尽管您的代码示例,但错误表明您使用ZF2 ;并且错误是PHP致命错误,不是例外,这就是你的try / catch不起作用的原因。 ZF2中没有Zend_Loader,因此PHP无法找到它。

我建议只使用标准PHP函数class_exists()

if (class_exists('Some\Class')) {
    ...
} else {
    ...
}

应该让你实现你想要做的事情。无需担心异常。