From: mfranz Date: Thu, 13 Nov 2008 23:47:45 +0000 (+0000) Subject: f_alias: catch SGPropertyNode exceptions and generate runtime error X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=845196800bff0220090295b40af3d99c26061077;p=flightgear.git f_alias: catch SGPropertyNode exceptions and generate runtime error --- diff --git a/src/Scripting/nasal-props.cxx b/src/Scripting/nasal-props.cxx index 359eb9131..e6e542eae 100644 --- a/src/Scripting/nasal-props.cxx +++ b/src/Scripting/nasal-props.cxx @@ -306,10 +306,12 @@ static naRef f_alias(naContext c, naRef me, int argc, naRef* args) NODEARG(); SGPropertyNode* al; naRef prop = naVec_get(argv, 0); - if(naIsString(prop)) al = globals->get_props()->getNode(naStr_data(prop), true); - else if(naIsGhost(prop)) al = *(SGPropertyNode_ptr*)naGhost_ptr(prop); - else { - naRuntimeError(c, "props.alias() with bad argument"); + try { + if(naIsString(prop)) al = globals->get_props()->getNode(naStr_data(prop), true); + else if(naIsGhost(prop)) al = *(SGPropertyNode_ptr*)naGhost_ptr(prop); + else throw string("props.alias() with bad argument"); + } catch (const string& err) { + naRuntimeError(c, (char *)err.c_str()); return naNil(); } return naNum((*node)->alias(al));