ANSI C equivalente de try / catch?
Tengo un código C con el que estoy trabajando, y encuentro errores cuando el código se está ejecutando, pero tengo poca información sobre cómo hacer un try / catch adecuado (como en C # o C ++).
Por ejemplo, en C ++ solo haría:
try{
//some stuff
}
catch(...)
{
//handle error
}
pero en ANSI C estoy un poco perdido. Intenté algunas búsquedas en línea, pero no veo suficiente información sobre cómo hacerlo posible / pensé en preguntar aquí en caso de que alguien pueda señalarme en la dirección correcta.
Aquí está el código con el que estoy trabajando (método bastante simple y recursivo) y me gustaría ajustarlo con try / catch (o una estructura equivalente de manejo de errores).
Sin embargo, mi pregunta principal es simplemente cómo hacer un try / catch en ANSI C ... la implementación / ejemplo no tiene que 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();
}