2017-02-16 60 views
0

我使用的是JWS庫拋出InvalidArgumentException,對未簽署一些記號,所以當令牌無效,我得到了異常InvalidArgumentExceptionPHP捕捉從功能

({「名」:「異常」, 「message」:「令牌\」123 \「是無效的JWS」,「code」:0,「type」:「InvalidArgumentException」,「file」:「/ var/www/html/checkout/vendor/namshi /聖荷西/ SRC/Namshi/JOSE/J WS.php」, 「行」:143,)

$jws= SimpleJWS::load($data); 

靜態函數負載拋出異常如果令牌我無效,我不想顯示異常消息,而是想顯示友好的錯誤消息。

有幫助嗎?

+3

只是用'嘗試{}趕上(invalidArgumentException $ E){}' –

+0

這種嘗試{$ JWS = SimpleJWS ::負載($的數據);}趕上( invalidArgumentException $ e){echo $ e-> getMessage();}但不工作! – justsomedev

+0

http://php.net/manual/en/language.exceptions.php – RiggsFolly

回答

2

這個什麼:我想

try { 
    $jws= SimpleJWS::load($data); 
// if it's the php exception http://php.net/manual/en/class.invalidargumentexception.php 
} catch (\InvalidArgumentException $e) { 
// if it's the library's exception you should specify the complete namespace 
//} catch (InvalidArgumentException $e) { 
    // token is not valid 
} 
+0

仍然不能正常工作(「名稱」:「例外」, 「消息」:「令牌\」123 \「是無效的JWS 「, 」code「:0, 」type「:」InvalidArgumentException「, 」file「:」/var/www/html/checkout/vendor/namshi/jose/src/Namshi/JOSE/JWS.php「, 「line」:143,) – justsomedev

+0

謝謝你,但爲什麼「\ Exception」這個工作不是「InvalidArgumentException」,因爲拋出的異常是InvalidArgumentException? – justsomedev

+1

您的文件位於名稱空間中,因此您需要使用'\ InvalidArgumentException'來捕獲基本名稱空間的異常。如果您忘記名稱前的「\」,php將查找當前名稱空間中定義的InvalidArgumentException –