簡體   English   中英

ZF2中嘗試/捕獲的工作

[英]Working of try / catch in ZF2

從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 
}

錯誤 :致命錯誤:在第22行的C:\\ wamp \\ www \\ zf \\ module \\ Album \\ src \\ Album \\ Controller \\ AlbumController.php中找不到類'Album \\ Controller \\ Zend \\ Loader \\ Loader'顯示錯誤信息

編輯

但是當我按照以下代碼拋出異常時,我得到的消息是錯誤。

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

這里有一些問題。 盡管有代碼示例,但該錯誤表明您正在使用ZF2。 並且該錯誤是PHP致命錯誤,而不是異常,這就是為什么您的try / catch無法正常工作的原因。 ZF2中沒有Zend_Loader ,因此PHP將無法找到它。

我建議只使用標准的PHP函數class_exists()代替:

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

這應該可以讓您實現想要做的事情。 無需擔心異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM