Create a new SystemExit exception with the given status.
/* * call-seq: * SystemExit.new(status=0) => system_exit * * Create a new +SystemExit+ exception with the given status. */ static VALUE exit_initialize(argc, argv, exc) int argc; VALUE *argv; VALUE exc; { VALUE status = INT2FIX(EXIT_SUCCESS); if (argc > 0 && FIXNUM_P(argv[0])) { status = *argv++; --argc; } rb_call_super(argc, argv); rb_iv_set(exc, "status", status); return exc; }
Returns true if exiting successful, false if not.
/* * call-seq: * system_exit.success? => true or false * * Returns +true+ if exiting successful, +false+ if not. */ static VALUE exit_success_p(exc) VALUE exc; { VALUE status = rb_attr_get(exc, rb_intern("status")); if (NIL_P(status)) return Qtrue; if (status == INT2FIX(EXIT_SUCCESS)) return Qtrue; return Qfalse; }