как rb _защитить все в ruby ​​

Я хочу вызвать ruby-код из своего собственного кода C. В случае возникновения исключения я должен rb _защитить код ruby, который я вызываю. rb _Protect выглядит так:

VALUE rb_protect(VALUE (* proc) (VALUE), VALUE data, int * state)

Таким образом, procдолжна быть функцией, которая принимает VALUEаргументов и возвращает VALUE. Мне приходится вызывать множество функций, которые так не работают. Как я могу rb_protectих исключить из исключений?

Я подумал об использовании Data_Make_Struct, чтобы обернуть все в один рубиновый объект и вызвать для него методы. Data_Make_Structможет сам вызвать исключение. Как мнеrb_protectData_Make_Struct?

6
задан johannes 18 June 2012 в 15:56
поделиться