fail在Ruby中是做什么的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

我正在学习Ruby并遇到了fail关键词。这是什么意思?

if password.length < 8
   fail "Password too short"
end
unless  username
   fail "No user name set"
end
提问于
用户回答回答于

在Ruby中,fail和同义词raise一样。该fail关键字是所述的方法Kernel,其是由类包括模块Object。该fail方法会像raise关键字一样引发运行时错误。

fail方法有三个重载:

  • fail:引发一个RuntimeError没有错误信息。
  • fail(string)RuntimeError用字符串参数引发一个错误消息: fail "Failed to open file"
  • fail(exception [, string [, array]])exception用可选的错误消息(第二个参数)和回调信息(第三个参数)引发类(第一个参数)的异常。 例子:假设你定义了一个函数,如果给出一个错误的参数,它将会失败。最好提出一个,ArgumentError而不是RuntimeErrorfail ArgumentError, "Illegal String" 另一个示例:可以将整个回溯传递给该fail方法,以便可以访问该rescue块内的跟踪: fail ArgumentError, "Illegal String", caller caller是一种内核方法,它将窗体中的字符串数组作为返回file:line: in 'method'
用户回答回答于

fail==raise

换句话说,fail只是一个流行的别名raise产生误差的方法。用法:

fail ArgumentError, "Don't argue with me!"

扫码关注云+社区