Tại sao đoạn code lua này lại bị stack overflow?

Mình đang cố làm cho lua nó giống C# một tí :smiley: , bằng cách viết 2 function là try và catch, nhưng khi mình rethrow exception (gọi hàm error trong error handler) thì lại dính lỗi tràn bộ nhớ:

function try(func, errHandler)
    return xpcall( func, errHandler)
end
function catch(func)
    return func
end

try (function()
    error("Có lỗi nè bạn ey")
end, 
catch (function(err)
    print( "ERROR:", err);
    error(err);
end));

Vậy phải làm thế nào để “rethrow” error đây?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?