diff --git a/lualib/skynet/manager.lua b/lualib/skynet/manager.lua index 4365d2e2..d2437b54 100644 --- a/lualib/skynet/manager.lua +++ b/lualib/skynet/manager.lua @@ -57,8 +57,11 @@ function skynet.forward_type(map, start_func) if prototype then dispatch_message(prototype, msg, sz, ...) else - dispatch_message(ptype, msg, sz, ...) + local ok, err = pcall(dispatch_message, ptype, msg, sz, ...) c.trash(msg, sz) + if not ok then + error(err) + end end end, true) skynet.timeout(0, function()