SystemExit
SystemExit类
Parent:Exception
通过exit
启动终止脚本。
公共类方法
new → system_exit Show source
new(status) → system_exit
new(status, msg) → system_exit
new(msg) → system_exit
SystemExit
用给定的状态和消息创建一个新的异常。状态为true,false或整数。如果没有给出状态,则使用true。
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;
}
公共实例方法
status → integer Show source
返回与此系统出口关联的状态值。
static VALUE
exit_status(VALUE exc)
{
return rb_attr_get(exc, id_status
}
success? → true or false Show source
如果退出成功则返回true,否则返回false。
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
if (WIFEXITED(status) && WEXITSTATUS(status) == EXIT_SUCCESS)
return Qtrue;
return Qfalse;
}