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