我正在学习Ruby,遇到了fail
个关键词.这是什么意思?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
我正在学习Ruby,遇到了fail
个关键词.这是什么意思?
if password.length < 8
fail "Password too short"
end
unless username
fail "No user name set"
end
在Ruby中,fail
是raise
的同义词.fail
关键字是类Object
包含的Kernel
模块的方法.fail
方法会引发运行时错误,就像raise
关键字一样.
fail
方法有三个重载:
fail
:在没有错误消息的情况下引发RuntimeError
.
fail(string)
:以字符串参数作为错误消息引发RuntimeError
:
fail "Failed to open file"
fail(exception [, string [, array]])
:引发类exception
(第一个参数)的异常,其中包含可选错误消息(第二个参数)和回调信息(第三个参数).
示例:假设您定义了一个函数,如果给出一个错误的参数,该函数将失败.最好是ArgumentError
分而不是RuntimeError
分:
fail ArgumentError, "Illegal String"
另一个例子:可以将整个backtrace传递给fail
方法,这样就可以访问rescue
块内的跟踪:
fail ArgumentError, "Illegal String", caller
caller
是一个内核方法,它以file:line: in 'method'
的形式将回溯作为字符串数组返回.
在没有参数的情况下,以$为单位引发异常!或者引发运行时错误