От: | vdimas | ||
Дата: | 25.07.24 22:37 | ||
Оценка: |
throw_err(EINVAL);
Т.е. компилятор нифига не помогает в случае Си.ключевое отличие лишь в том, что setjmp вызывается коде динамически, т.е. некий твой код динамически заполняет структуру jmp_buf, а компилятор генерит таблицу уже заполненных аналогичных структур для ф-ии еще в процессе компиляции.
int do_something(void) {
throw_err(42);
}
int some_fn() {
int rc = -1;
try()
catch_err(42)
printf("Error!!!\n");
end_catch()
catch_err(43)
printf("Warning!!!\n");
end_catch()
rc = do_something();
end_try()
return rc;
}