我正在使用尊重验证来尝试验证通过 POST 请求发送的数据。在这样做的过程中,我发现了一个问题,即 Respect Validation 库中的异常没有被捕获。
$postValidator = v::key('name', v::stringType()->length(3, 50))
->key('email', v::email())
->key('contact', v::phone())
->key('message', v::stringType()->length(7, 1000));
try {
$isValid = $postValidator->assert(['random' => 'thing']);
} catch(Exception $exception) {
return $response->withJson([
'success' => false
]);
}
测试以下内容会返回以下错误:
All of the required rules must pass for { "random": "thing" }
在这里,我使用了一个泛型Exception
,它应该捕获方法中发生的任何异常assert
。但它似乎没有,我得到一个通用的 Slim 错误,而不是 JSON 响应:
任何想法为什么我不能捕捉到那个异常?
我遇到的问题是,如果顽皮的用户要输入应用程序无法处理的 postdata,Respect Validation 将引发异常。就个人而言,我宁愿尊重验证只是忽略那些,但事实并非如此。所以我想捕捉当用户传递未定义的帖子数据并返回响应时 Respect 抛出的异常。除了,在上面的代码中,异常没有被捕获。