class NoMethodError
Wird ausgelöst, wenn eine Methode für einen Empfänger aufgerufen wird, der sie nicht definiert hat und auch nicht mit method_missing reagiert.
"hello".to_ary
löst die Ausnahme aus
NoMethodError: undefined method `to_ary' for an instance of String
Öffentliche Klassenmethoden
Source
static VALUE
nometh_err_initialize(int argc, VALUE *argv, VALUE self)
{
int priv;
VALUE args, options;
argc = rb_scan_args(argc, argv, "*:", NULL, &options);
priv = (argc > 3) && (--argc, RTEST(argv[argc]));
args = (argc > 2) ? argv[--argc] : Qnil;
if (!NIL_P(options)) argv[argc++] = options;
rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);
return nometh_err_init_attr(self, args, priv);
}
Erstellt eine Ausnahme vom Typ NoMethodError für eine Methode mit dem angegebenen Namen, die mit den angegebenen Argumenten aufgerufen wurde. Der Name kann über die Methode name des resultierenden Objekts abgerufen werden, und die Argumente über die Methode args.
Wenn das Argument private übergeben wurde, kennzeichnet es, dass die Methode in einem privaten Kontext aufgerufen wurde. Dies kann über die Methode private_call? abgerufen werden.
Das Argument receiver speichert das Objekt, dessen Methode aufgerufen wurde.
Öffentliche Instanzmethoden
Source
static VALUE
nometh_err_args(VALUE self)
{
return rb_attr_get(self, id_args);
}
Gibt die Argumente zurück, die als dritter Parameter an den Konstruktor übergeben wurden.
Source
static VALUE
nometh_err_private_call_p(VALUE self)
{
return rb_attr_get(self, id_private_call_p);
}
Gibt true zurück, wenn die verursachende Methode als private aufgerufen wurde.