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
SignalExceptionobject.
::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 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(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 344
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 389
static VALUE
esignal_signo(VALUE self)
{
return rb_ivar_get(self, id_signo);
}