HI я следующий код в C, которая вызывается из рубина сценария,Что такое расширение объекта класса исключения Ruby в c?
static VALUE myMethod(VALUE self, VALUE exc)
{
int a = TYPE(exc);
printf(" %d ", a);
// Some process on exc
}
void Init_myRuby()
{
VALUE mRuby = rb_define_module("myRuby");
VALUE mException = rb_define_class_under(mRuby, "Exception", rb_eRuntimeError);
rb_define_singleton_method(mRuby, "myMethod", myMethod, 4);
}
Ниже приводится код клиентского скрипта рубина,
require 'myRuby'
def raiseExc()
exception = myRuby::Exception.new("status","lasterror","function()","Calling some")
myRuby::myMethod(exception, "Exception message: %s, Exception object %d", "Hi from Exception", 100)
end
raiseExc()
Я призываю MyMethod функции() из рубинового клиента. Может ли кто-нибудь сказать мне, как получить доступ к объекту класса исключений «exc» в c-файле и всем его атрибутам.
Имена модулей должны начинаться с заглавной буквы. –