Tengo un código C con el que estoy trabajando, y estoy encontrando errores cuando el código se está ejecutando, pero tengo poca información sobre cómo hacer una prueba/captura adecuada (como en C# o C++).ANSI C equivalente de try/catch?
Por ejemplo, en C++ que acababa de hacer:
try{
//some stuff
}
catch(...)
{
//handle error
}
pero en ANSI C estoy un poco perdido. Probé algunas búsquedas en línea, pero no veo suficiente información sobre cómo hacerlo realidad, pensé que podría preguntar aquí en caso de que alguien me señale la dirección correcta.
Aquí está el código que estoy trabajando con (método bastante sencillo, recursiva) y me gustaría concluir con try/catch (o estructura de control de errores equivalente).
Sin embargo, mi pregunta principal es simplemente cómo hacer un try/catch en ANSI C ... de la aplicación/ejemplo no tiene por qué ser recursivo.
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();
}
http://www.nicemice.net/cexcept/ algo que podría ser útil – anijhaw
Este código no es C, ansi o de lo contrario. C no tiene el operador de alcance '::'. –
C no tiene mecanismo de manejo de excepciones. Todo el manejo de errores usualmente se realiza con valores de retorno y variable errnum. Por cierto, sería bueno obtener algunos comentarios expertos detallados de cómo se hace el manejo de errores correctamente en C :) – Kel