2017-02-16 56 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 –