2012-01-02 5 views
2

루아에로드하는 C DLL이 있습니다. 오류가 발생하면 DLL은 lua_error()를 호출합니다. 루아에서 오류 설명이있는 메시지 상자가 나타납니다. 이 문제를 더 잘 처리 할 수있는 방법이 있습니까? 어떤 종류의 시도/잡아 루아의 측면이나 뭐?루아에서 루아에서 lua_error()를 처리하는 방법

답변

5

루아 스크립트가 error이라고 불렀을 때와 다르게 처리됩니다. 루아 오류 (C/C++ 또는 루아를 불문하고)를 발행 할 수있는 함수를 호출하고 방금 중지하는 대신 오류 조건을 처리하려면 pcall을 사용하여 함수를 호출해야합니다.

+0

실제로 작동하지 않는 것처럼 보였거나 잘못되었습니다. 내가 가진 : PCALL 경우 : 다음 \t는 ("없음 오류")에 통보 (dB NROWS는() "TEST1 SELECT * FROM") 다른 \t 통지 ("오류")를 가진 끝 – user441521

+0

내가 데시벨에서 오류가 발생 위 : DLL에서 오는 nrows(). 나는 "오류"메시지를받을 것으로 예상했지만 DLL에서 오는 오류 메시지가 나타납니다. 참고 저는 LuaJIT를 사용하고 있습니다 만, 문제가되지 않을 것이라고 생각합니다. – user441521

+1

@ user441521 : 그건'pcall'을 사용하는 방법이 아닙니다. 'pcall'에 대한 적절한 방법은 다음과 같습니다 :'pcall (db.nrows, db, "SELECT * FROM test1")'. 'db.nros'라고하는 함수를 매개 변수로 전달합니다. 'x : y()'구문은'x.y (x)'와 동일하므로 첫 번째 매개 변수는'db'입니다. 두 번째는 SQL 문자열입니다. –