2015-06-23 82 views
1

我想拋出一個自定義異常,這是我的CakePHP應用程序的控制器中的數據驗證異常。我如何在Cakephp中創建自己的自定義異常處理程序,以便可以引發異常並捕獲異常?如何在CakePHP上拋出自定義的try-catch異常?

我的代碼示例:

function getUserDetails($userid){ 

    try{ 
     if(!$validUser){ 
       throw new Exception('Invalid User'); 
     } 

     return $userDetailsData; //returned from db 
    }catch(Exception $e){ 
     echo 'Error:'.$e->getMessage(); 
     return; 
    } 

} 

是否有可能在這裏使用自定義異常類在CakePHP中,這樣只有那些異常可能拋出的是我做什麼。希望它澄清問題。 謝謝。

+4

你有沒有試過食譜? http://book.cakephp.org/3.0/en/development/errors.html –

+2

也許我錯了,但我不認爲你應該在輸入數據錯誤時拋出異常,這不是cakephp工作的方式。 – Holt

+0

這是一個API?請在問題中加入一些示例代碼。請注意[crud插件](https://github.com/FriendsOfCake/crud)使用異常處理驗證異常_for api responses_。 – AD7six

回答

5

CakePHP實際上很大程度上依賴於名稱空間。

\添加到Exception應解決您的問題。

}catch(\Exception $e){ 

如果你想要更多的東西,你可以創建一個異常類,並從該命名空間的對象。

+0

謝謝。這幫助了我很多。 – noamicko