2010-07-09 7 views

Odpowiedz

5

Ruby potrzebuje więcej dokumentacji. Musiałem udać się do kodu źródłowego rubin, a to co znalazłem:

VALUE 
rb_rescue(VALUE (* b_proc)(ANYARGS), VALUE data1, 
     VALUE (* r_proc)(ANYARGS), VALUE data2) 
{ 
    return rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError, 
       (VALUE)0); 
} 

Więc odpowiedź na moje pytanie (chyba) byłoby:

rb_rescue2(x, Qnil, y, Qnil, rb_eException, (VALUE)0); 

VALUE x(void) { /* ... */ return Qnil; } 
VALUE y(void) { /* ... */ return Qnil; } 
+1

+1 Wystarczy nacisnąć ten sam problem i to odkrycie rozwiązało mój problem. –

+0

Chciałbym zagłosować na to, ale nie jestem pewien, co oddzwoni robią co. Co zostaje wywołane w razie akcji ratunkowej? Co jest uratowane? –

+0

Zakładam, że 'b_proc' jest kodem po instrukcji' begin', a 'r_proc' jest kodem ratunkowym. – Vortico

Powiązane problemy