What does the fail keyword do in Ruby?
I am learning Ruby and encountered the
fail keyword. What does it mean?
if password.length < 8 fail "Password too short" end unless username fail "No user name set" end
fail is synonymous with
fail keyword is a method of the
Kernel module which is included by the class
fail method raises a runtime error just like the
fail method has three overloads:
fail: raises a
RuntimeErrorwithout an error message.
fail(string): raises a
RuntimeErrorwith the string argument as an error message:
fail "Failed to open file"
fail(exception [, string [, array]]): raises an exception of class
exception(first argument) with an optional error message (second argument) and callback information (third argument).
Example: Assume you define a function which should fail if given a bad argument. It is better to raise an
ArgumentErrorand not a
fail ArgumentError, "Illegal String"
Another Example: You can pass the whole backtrace to the
failmethod so you can access the trace inside the
fail ArgumentError, "Illegal String", caller
calleris a Kernel method which returns the backtrace as an array of strings in the form
file:line: in 'method'.
With no arguments, raises the exception in $! or raises a RuntimeError if $! is nil. With a single String argument, raises a RuntimeError with the string as a message. Otherwise, the first parameter should be the name of an Exception class (or an object that returns an Exception object when sent an exception message). The optional second parameter sets the message associated with the exception, and the third parameter is an array of callback information. Exceptions are caught by the rescue clause of begin...end blocks.