У меня есть код C, с которым я работаю, и я нахожу ошибки, когда код работает, но мало информации о том, как сделать правильный try/catch (как на С# или С++).
Например, в С++ я просто сделал:
try{
//some stuff
}
catch(...)
{
//handle error
}
но в ANSI C я немного потерян. Я пробовал некоторые онлайн-поиски, но я не вижу достаточной информации о том, как это произошло/фигура. Я бы спросил здесь, если кто-то может указать мне в правильном направлении.
Вот код, с которым я работаю (довольно простой, рекурсивный метод) и хотел бы обернуть с помощью try/catch (или эквивалентной структуры обработки ошибок).
Однако мой главный вопрос заключается в том, как сделать 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();
}