Hen*_*gen 5 error-handling lua
我在我的很多error
函数中使用该函数,并希望将错误消息传播给用户.但是,我显然不希望包含有关错误发生位置的信息; 此信息应仅转到日志文件.
例如,我有一个管理服务器连接的类.如果连接超时,则调用
error("Connection timed out!")
Run Code Online (Sandbox Code Playgroud)
然后通过调用代码捕获错误消息pcall
.但是,该消息不仅包含我传递的消息,还包含导致错误的文件名和行号:
common/net/enetclient.lua:21: Connection timed out!
Run Code Online (Sandbox Code Playgroud)
问题是:有没有办法只检索错误消息本身,或者我必须手动执行此操作,如下所示:
local status, msg = pcall(someFunctionThatThrowsErrors)
if not status then
local file, msg = msg:match("(.-:%d+): (.+)")
print("Error: " .. msg)
end
Run Code Online (Sandbox Code Playgroud)
干杯,
小智 4
error
从该函数的文档中:
error (message [, level])
终止最后调用的受保护函数并
message
作为错误消息返回。函数error
永远不会返回。通常,
error
如果消息是字符串,则在消息的开头添加一些有关错误位置的信息。参数level
指定如何获取错误位置。对于级别 1(默认值),错误位置是error
调用函数的位置。2 级将错误指向调用函数的调用位置error
;等等。传递级别 0 可以避免向消息中添加错误位置信息。
0
根据第二段中的说明,向调用添加级别error
将产生所需的输出:
error("Connection timed out!", 0)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
496 次 |
最近记录: |