Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
void foo(int (*callback)(char *))
{
char * buffer;
int ret;
buffer = malloc(100000);
ret = callback(buffer);
free(buffer);
}
try
{
this_->callback();
}
catch(exception1)
{
}
catch(exceptionN)
{
}
Очевидное решение, именно то, которое я встречал чаще всего, когда только начал заниматься этим вопросом, состоит в полном отказе от исключений в таких callback`ах. Но это, вестимо, не наш случай.
Обратные вызовы и исключения С++