Exception: SystemExit
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           ::Exception | |
| Instance Chain: 
          self,
           ::Exception | |
| Inherits: | Exception | 
| Defined in: | error.c, error.c | 
Overview
Raised by exit to initiate the termination of the script.
Class Attribute Summary
::Exception - Inherited
| .to_tty? | Returns  | 
Class Method Summary
- 
    
      .new  ⇒ system_exit 
    
    constructor
    Create a new SystemExitexception with the given status and message.
::Exception - Inherited
| .exception | Returns an exception object of the same class as  | 
| .new | Returns a new exception object. | 
Instance Attribute Summary
- 
    
      #success?  ⇒ Boolean 
    
    readonly
    Returns trueif exiting successful,falseif not.
Instance Method Summary
- 
    
      #status  ⇒ Integer 
    
    Return the status value associated with this system exit. 
::Exception - Inherited
| #== | Returns whether  | 
| #backtrace | Returns the backtrace (the list of code locations that led to the exception), as an array of strings. | 
| #backtrace_locations | Returns the backtrace (the list of code locations that led to the exception), as an array of  | 
| #cause | Returns the previous value of global variable  | 
| #detailed_message | Returns the message string with enhancements: | 
| #exception | Returns an exception object of the same class as  | 
| #full_message | Returns an enhanced message string: | 
| #inspect | Returns a string representation of  | 
| #message | Returns  | 
| #set_backtrace | Sets the backtrace value for  | 
| #to_s | Returns a string representation of  | 
Constructor Details
    
      .new  ⇒ system_exit 
      .new(status)  ⇒ system_exit 
      .new(status, msg)  ⇒ system_exit 
      .new(msg)  ⇒ system_exit 
    
  
system_exit 
      .new(status)  ⇒ system_exit 
      .new(status, msg)  ⇒ system_exit 
      .new(msg)  ⇒ system_exit 
    Create a new SystemExit exception with the given status and message. Status is true, false, or an integer. If status is not given, true is used.
# File 'error.c', line 2224
static VALUE
exit_initialize(int argc, VALUE *argv, VALUE exc)
{
    VALUE status;
    if (argc > 0) {
        status = *argv;
        switch (status) {
          case Qtrue:
            status = INT2FIX(EXIT_SUCCESS);
            ++argv;
            --argc;
            break;
          case Qfalse:
            status = INT2FIX(EXIT_FAILURE);
            ++argv;
            --argc;
            break;
          default:
            status = rb_check_to_int(status);
            if (NIL_P(status)) {
                status = INT2FIX(EXIT_SUCCESS);
            }
            else {
#if EXIT_SUCCESS != 0
                if (status == INT2FIX(0))
                    status = INT2FIX(EXIT_SUCCESS);
#endif
                ++argv;
                --argc;
            }
            break;
        }
    }
    else {
        status = INT2FIX(EXIT_SUCCESS);
    }
    rb_call_super(argc, argv);
    rb_ivar_set(exc, id_status, status);
    return exc;
}
  Instance Attribute Details
    #success?  ⇒ Boolean  (readonly)  
Returns true if exiting successful, false if not.
# File 'error.c', line 2288
static VALUE
exit_success_p(VALUE exc)
{
    VALUE status_val = rb_attr_get(exc, id_status);
    int status;
    if (NIL_P(status_val))
        return Qtrue;
    status = NUM2INT(status_val);
    return RBOOL(WIFEXITED(status) && WEXITSTATUS(status) == EXIT_SUCCESS);
}
  Instance Method Details
#status ⇒ Integer
Return the status value associated with this system exit.
# File 'error.c', line 2274
static VALUE
exit_status(VALUE exc)
{
    return rb_attr_get(exc, id_status);
}