Exception: SystemExit

Inherits:
Exception show all
Defined in:
error.c

Overview

Raised by exit to initiate the termination of the script.

Instance Method Summary collapse

Methods inherited from Exception

#==, #backtrace, #exception, exception, #inspect, #message, #set_backtrace, #to_s

Constructor Details

#new(status = 0) ⇒ Object

Create a new SystemExit exception with the given status.



# File 'error.c'

static VALUE
exit_initialize(int argc, VALUE *argv, VALUE exc)
{
VALUE status = INT2FIX(EXIT_SUCCESS);
if (argc > 0 && FIXNUM_P(argv[0])) {
status = *argv++;
--argc;
}

Instance Method Details

#statusFixnum

Return the status value associated with this system exit.

Returns:



# File 'error.c'

static VALUE
exit_status(VALUE exc)
{
    return rb_attr_get(exc, rb_intern("status"));
}

#success?Boolean

Returns true if exiting successful, false if not.

Returns:

  • (Boolean)


# File 'error.c'

static VALUE
exit_success_p(VALUE exc)
{
    VALUE status_val = rb_attr_get(exc, rb_intern("status"));
    int status;

    if (NIL_P(status_val))
    return Qtrue;
    status = NUM2INT(status_val);
    if (WIFEXITED(status) && WEXITSTATUS(status) == EXIT_SUCCESS)
    return Qtrue;

    return Qfalse;
}