Method: Kernel#exit

Defined in:
process.c

#exit(status = true) ⇒ Object #Kernel::exit(status = true) ⇒ Object #Process::exit(status = true) ⇒ Object

Initiates the termination of the Ruby script by raising the SystemExit exception. This exception may be caught. The optional parameter is used to return a status code to the invoking environment. true and FALSE of status means success and failure respectively. The interpretation of other integer values are system dependent.

begin
  exit
  puts "never get here"
rescue SystemExit
  puts "rescued a SystemExit exception"
end
puts "after begin block"

produces:

rescued a SystemExit exception
after begin block

Just prior to termination, Ruby executes any at_exit functions (see Kernel::at_exit) and runs any object finalizers (see ObjectSpace::define_finalizer).

at_exit { puts "at_exit function" }
ObjectSpace.define_finalizer("string",  proc { puts "in finalizer" })
exit

produces:

at_exit function
in finalizer


4259
4260
4261
4262
4263
# File 'process.c', line 4259

static VALUE
f_exit(int c, const VALUE *a, VALUE _)
{
    return rb_f_exit(c, a);
}