【发布时间】:2015-12-14 12:20:05
【问题描述】:
我在我的函数中使用Params::Validate 模块。对于其中一个选项,O 正在使用回调进行验证。现在我需要捕捉这个失败并用一些自定义消息替换它。如何做到这一点?我尝试使用 on_fail 选项,但没有发现错误。
【问题讨论】:
-
显示代码对您获得答案更有帮助。
标签: perl validation params
我在我的函数中使用Params::Validate 模块。对于其中一个选项,O 正在使用回调进行验证。现在我需要捕捉这个失败并用一些自定义消息替换它。如何做到这一点?我尝试使用 on_fail 选项,但没有发现错误。
【问题讨论】:
标签: perl validation params
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!"; } } } } );
【讨论】: