현재 프로젝트 (예 : C으로 작성)에 루아 인터프리터를 포함하고 있으며 오류를 처리하는 방법의 예를 찾고 있습니다. 이Lua에서 longjmp를 사용하는 중 오류 처리
if(0 != setjmp(jmpbuffer)) /* Where does this buffer come from ? */
{
printf("Aargh an error!\n");
return;
}
lua_getfield(L, LUA_GLOBALSINDEX, "myfunction");
lua_call(L, 0, 0);
printf("Lua code ran OK.\n");
매뉴얼은 단지 오류가 longjmp를 기능을 사용하여 발생하지만 버퍼를 필요로하는 longjmp 것을 말한다 ... 내가 지금까지있는 것입니다. 루아가 버퍼를 할당합니까? 매뉴얼은 약간 모호합니다.
음, 나는 몇 가지 RTFS을 수행 한 후, 나는 전체 setjmp는/longjmp를 일 루아에서 내부있을 생각이와 잘못 짚었 수 있습니다. 어쩌면 오류는 아직 해결하지 못한 다른 방법으로 처리됩니다. 나는 아직도 조사 중이다. –
OK, 해결했습니다. 오류를 잡으려면 lua_pcall 함수를 사용해야합니다. –