我正在使用Respect Validation来尝试验证通过POST请求发送的数据。这样做时,我发现了一个问题,即没有在“尊重验证”库中捕获异常。
$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引发的异常。除了上面的代码中,没有捕获到异常。