raise
raise(...)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.
raise "Failed to create socket" raise ArgumentError, "No parameters", caller
3Notes
Example of raising a custom exception
Create custom exception
class PersonalException < Exception end
Raise the exception
raise PersonalException.new, "message"
rescue
Store exceptions using 'rescue => var'
begin
x = factorial(-1)
rescue => ex
puts "#{ex.class}: #{ex.message}"
end
Exceptions while debugging
If the error wasn't stored in a variable, you can still see it by looking at the global variable $ERROR_INFO.