class SystemExit
Wird von exit ausgelöst, um die Beendigung des Skripts zu initiieren.
Öffentliche Klassenmethoden
Source
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;
}
Erstellt eine neue SystemExit-Ausnahme mit dem angegebenen Status und der angegebenen Nachricht. Der Status ist true, false oder eine Ganzzahl. Wenn der Status nicht angegeben wird, wird true verwendet.
Öffentliche Instanzmethoden
Source
static VALUE
exit_status(VALUE exc)
{
return rb_attr_get(exc, id_status);
}
Gibt den Statuswert zurück, der mit diesem System-Exit verbunden ist.
Source
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);
}
Gibt true zurück, wenn der Exit erfolgreich war, false andernfalls.