pcall()

类型 函数
(全局)
返回值 布尔值
修订 版本 2024.3703
关键词 pcall,保护模式,保护调用,函数
另请参阅 (全局)

概述

在保护模式下调用以第一个参数指定的函数,并使用给定的参数(作为后续参数)。这意味着 `f` 内部的任何错误都不会传播;相反,`pcall()` 会捕获错误并返回状态码。它的第一个结果是状态码(一个 布尔值),如果调用成功且没有错误,则为 `true`。在这种情况下,`pcall()` 还会在此第一个结果之后返回调用的所有结果。如果发生任何错误,`pcall()` 将返回 `false` 加上错误消息。

语法

pcall( f [, ...] )
f (必填)

函数要在保护模式下调用的函数。

(可选)

任何。可以是从零到传递给要调用的函数的任意数量的参数。

示例

在以下示例中,该函数将失败并通常会停止模拟器,因为我们正在尝试连接 `nil` 值。 `pcall()` 将捕获并显示错误,而不会停止模拟器。

function myPrint( value )
    local foo = value .. nil
end
 
print( pcall( myPrint, "hello" ) )  -- print false and error message