无法使用尊重验证从断言方法捕获异常

时间:2019-01-24 16:59:27

标签: php slim respect-validation

我正在使用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响应:

enter image description here

有什么主意为什么我不能抓住那个异常?

我遇到的问题是,如果顽皮的用户要输入应用程序无法处理的postdata,则“尊重验证”将引发异常。就个人而言,我宁愿尊重验证就忽略这些,但事实并非如此。因此,我想捕捉当用户传递未定义的发布数据并返回响应时,Respect引发的异常。除了上面的代码中,没有捕获到异常。

0 个答案:

没有答案