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 | With no argument, or if the argument is the same as the receiver, return the receiver. | 
| .new | Construct a new  | 
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
| #== | Equality—If obj is not an  | 
| #backtrace | Returns any backtrace associated with the exception. | 
| #backtrace_locations | Returns any backtrace associated with the exception. | 
| #cause | Returns the previous exception ($!) at the time this exception was raised. | 
| #exception | With no argument, or if the argument is the same as the receiver, return the receiver. | 
| #full_message | Returns formatted string of exception. | 
| #inspect | Return this exception’s class name and message. | 
| #message | Returns the result of invoking  | 
| #set_backtrace | Sets the backtrace information associated with  | 
| #to_s | Returns exception’s message (or the name of the exception if no message is set). | 
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 1567
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 1631
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 1617
static VALUE
exit_status(VALUE exc)
{
    return rb_attr_get(exc, id_status);
}