ANSI C-эквивалент try / catch?

У меня есть код C, с которым я работаю, и я нахожу ошибки, когда код работает, но мало информации о том, как правильно выполнить попытку / уловить (как в C # или C ++).

Например, в C ++ я бы просто сделал:

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

, но в ANSI C я немного потерялся. Я пробовал поискать в Интернете, но не вижу достаточно информации о том, как это сделать / решил, что спрошу здесь, если кто-нибудь может указать мне в правильном направлении.

Вот код, с которым я работаю (довольно простой, рекурсивный метод) и хотел бы заключить его с помощью try / catch (или эквивалентной структуры обработки ошибок).

Однако мой главный вопрос заключается в том, как выполнить попытку / уловить в ANSI C ... реализация / пример не обязательно должны быть рекурсивными.

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();
}
25
задан Zero Piraeus 21 February 2015 в 20:16
поделиться