Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more

In Files

  • error.c



Raised by exit to initiate the termination of the script.

Public Class Methods

new(status=0) → system_exit click to toggle source

Create a new SystemExit exception with the given status.

               static VALUE
exit_initialize(int argc, VALUE *argv, VALUE exc)
    if (argc > 0 && FIXNUM_P(argv[0])) {
        status = *argv++;
    rb_call_super(argc, argv);
    rb_iv_set(exc, "status", status);
    return exc;

Public Instance Methods

status → fixnum click to toggle source

Return the status value associated with this system exit.

               static VALUE
exit_status(VALUE exc)
    return rb_attr_get(exc, rb_intern("status"));
success? → true or false click to toggle source

Returns true if exiting successful, false if not.

               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;