SignalException 類別
當收到訊號時引發。
begin Process.kill('HUP',Process.pid) sleep # wait for receiver to handle signal sent by Process.kill rescue SignalException => e puts "received Exception #{e}" end
產生
received Exception SIGHUP
公開類別方法
new(sig_name) → signal_exception 按一下以切換來源
new(sig_number [, name]) → signal_exception
建構新的 SignalException
物件。sig_name
應為已知的訊號名稱。
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; }
公開實例方法
signo → num 按一下以切換來源
傳回訊號號碼。
static VALUE esignal_signo(VALUE self) { return rb_ivar_get(self, id_signo); }