Exception: SignalException
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Exception
|
|
Instance Chain:
self,
::Exception
|
|
Inherits: | Exception |
Defined in: | error.c, error.c, signal.c |
Overview
Class Attribute Summary
::Exception
- Inherited
.to_tty? | Returns |
Class Method Summary
-
.new(sig_name) ⇒ signal_exception
constructor
Construct a new
SignalException
object.
::Exception
- Inherited
.exception | Returns an exception object of the same class as |
.new | Returns a new exception object. |
Instance Method Summary
-
#signo ⇒ Numeric
Returns a signal number.
::Exception
- Inherited
#== | Returns whether |
#backtrace | Returns a backtrace value for |
#backtrace_locations | Returns a backtrace value for |
#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(sig_name) ⇒ signal_exception
.new(sig_number [, name]) ⇒ signal_exception
signal_exception
.new(sig_number [, name]) ⇒ signal_exception
Construct a new SignalException
object. sig_name
should be a known signal name.
# File 'signal.c', line 343
static VALUE esignal_init(int argc, VALUE *argv, VALUE self) { int argnum = 1; VALUE sig = Qnil; int signo; if (argc > 0) { sig = rb_check_to_integer(argv[0], "to_int"); if (!NIL_P(sig)) argnum = 2; else sig = argv[0]; } rb_check_arity(argc, 1, argnum); if (argnum == 2) { signo = NUM2INT(sig); if (signo < 0 || signo > NSIG) { rb_raise(rb_eArgError, "invalid signal number (%d)", signo); } if (argc > 1) { sig = argv[1]; } else { sig = rb_signo2signm(signo); } } else { int prefix; signo = signm2signo(&sig, FALSE, FALSE, &prefix); if (prefix != signame_prefix_len) { sig = rb_str_append(rb_str_new_cstr("SIG"), sig); } } rb_call_super(1, &sig); rb_ivar_set(self, id_signo, INT2NUM(signo)); return self; }
Instance Method Details
#signo ⇒ Numeric
Returns a signal number.
# File 'signal.c', line 388
static VALUE esignal_signo(VALUE self) { return rb_ivar_get(self, id_signo); }