Не удалось поймать исключение из метода assert с помощью Respect Validation - PullRequest
0 голосов
/ 24 января 2019

Я использую Respect Validation , чтобы попытаться проверить данные, отправленные с помощью запроса 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:

enter image description here

Есть идеи, почему я не могу поймать это исключение?

Проблема, с которой я столкнулся, заключается в том, что Respect Validation выдает исключение, если непослушные пользователи вводят постданные, которые приложение не может обработать. Лично я предпочел бы уважать валидацию, просто игнорировать их, но это не так. Поэтому я хочу поймать исключение, которое выдает Respect, когда пользователь передает неопределенные данные поста и возвращает ответ. За исключением того, что в приведенном выше коде исключение не перехватывается.

...