У меня есть некоторый код 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();
}