2015-12-14 1 views
0

Я использую модуль Params::Validate в своей функции. Для одного из вариантов, O проверяется с помощью обратного вызова. Теперь мне нужно поймать этот отказ и заменить его каким-то специальным сообщением. Как это можно достичь? Я попытался использовать опцию on_fail, но это не уловило ошибку.Params :: Проверка ошибки обработки обратного вызова

+3

Отображение кода будет более полезным для вас, чтобы получить ответ. – serenesat

ответ

1

Params::Validate будет генерировать общую ошибку, если вы вернете ложное значение. Чтобы предоставить свое собственное сообщение об ошибке, просто позвольте обратному сообщению die.

Обратный вызов должен возвращать истинное значение, если это значение действительно. Если нет, он может вернуть false или умереть. Если вы вернете false, общее сообщение об ошибке будет выведено Params :: Validate.

Документы также дают хороший пример кода.

validate(
    @_, 
    { 
     foo => { 
      callbacks => { 
       'smaller than a breadbox' => sub { shift() < $breadbox }, 
       'green or blue'   => sub { 
        return 1 if $_[0] eq 'green' || $_[0] eq 'blue'; 
        die "$_[0] is not green or blue!"; 
       } 
      } 
     } 
    } 
); 
+0

У меня есть returnObj, у которого должно быть собственное сообщение, я не хочу умирать в той же функции, а возвращать returnObj. validate ( – rahulv21

+0

@ bestrahul21 Я не понимаю, что вы говорите. – simbabque

 Смежные вопросы

  • Нет связанных вопросов^_^