ANSI C equivalente a try / catch?

Tenho um código C em que estou trabalhando e encontro erros quando o código está em execução, mas tenho poucas informações sobre como executar uma tentativa / captura adequada (como em C # ou C ++).

Por exemplo, em C ++, eu apenas faria:

try{
//some stuff
}
catch(...)
{
//handle error
}

mas no ANSI C estou um pouco perdido. Eu tentei algumas pesquisas on-line, mas não vejo informações suficientes sobre como fazer isso / pensei em perguntar aqui, caso alguém possa me apontar na direção certa.

Aqui está o código com o qual estou trabalhando (método bastante simples e recursivo) e gostaria de agrupar com try / catch (ou estrutura equivalente de tratamento de erros).

No entanto, minha pergunta principal é simplesmente como fazer uma tentativa / captura em ANSI C ... a implementação / exemplo não precisa ser recursiva.

void getInfo( int offset, myfile::MyItem * item )
{
    ll::String myOtherInfo = item->getOtherInfo();
    if( myOtherInfo.isNull() )
        myOtherInfo = "";
    ll::String getOne = "";
    myfile::Abc * abc = item->getOrig();
    if( abc != NULL )
    {
        getOne = abc->getOne();
    }
    for( int i = 0 ; i < offset ; i++ )
    {
             printf("found: %d", i);
    }
    if( abc != NULL )
        abc->release();
    int childCount = item->getChildCount();
    offset++;
    for( int i = 0 ; i < childCount ; i++ )
        getInfo( offset, item->getChild(i) );
    item->release();
}

questionAnswers(8)

yourAnswerToTheQuestion