类型 函数 库 (全局) 返回值 布尔值 修订 版本 2024.3703 关键词 pcall,保护模式,保护调用,函数 另请参阅 (全局)
在保护模式下调用以第一个参数指定的函数,并使用给定的参数(作为后续参数)。这意味着 `f` 内部的任何错误都不会传播;相反,`pcall()` 会捕获错误并返回状态码。它的第一个结果是状态码(一个 布尔值),如果调用成功且没有错误,则为 `true`。在这种情况下,`pcall()` 还会在此第一个结果之后返回调用的所有结果。如果发生任何错误,`pcall()` 将返回 `false` 加上错误消息。
pcall( f [, ...] )
函数。要在保护模式下调用的函数。
任何。可以是从零到传递给要调用的函数的任意数量的参数。
在以下示例中,该函数将失败并通常会停止模拟器,因为我们正在尝试连接 `nil` 值。 `pcall()` 将捕获并显示错误,而不会停止模拟器。
function myPrint( value ) local foo = value .. nil end print( pcall( myPrint, "hello" ) ) -- print false and error message