WoW:API pcall: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
m (Move page script moved page API pcall to API pcall without leaving a redirect)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<center>'''pcall''' ''-Documentation by [[user:Darjk|Darjk]]-''</center>
{{wowlua}}
Calls a function, returning a boolean indicating success as the first return value, and error text / return values as the following values.
retOK, ret1, ret2, ... retn = pcall (func, arg1, arg2, ...);


Returns a boolean value to catch errors from the function call (func).
== Arguments ==
;func
: Function - The function that will be called (from within) pcall().
;arg1 - argn
: Variable - Any variable that is also to be passed with the function when its called (Optional).


retVal = pcall (func, arg1, arg2, ...);
== Returns ==
 
;retOK
== Parameters ==
: Boolean - If the call to the function (that was passed to pcall) succeeded, returns true. If an error occured, returns false.
=== Arguments ===
;ret1
:(func, arg1, arg2, ...)
: String (if failed) / Variable - If an error occured, error text is returned; if not, ret1 is the first return value of the original function.
 
;ret2 - retn
:;func : Function - The function that will be called (from within) pcall().
: Variable - If the function call succeeded, those return variables contain values returned by original function.
:;arg1 : Variable - Any variable that is also to be passed with the function when its called (if any).
:;arg2 : Variable - Same as arg1.
 
=== Returns ===
;''Returns''
 
:retVal
 
:;retvaL : Boolean - If the call to the function (that was passed to pcall) succeeded, returns true. If an error occured, returns false.


== Example ==
== Example ==
  function myTest()
  function myTest(incrementVal)
   local strTest = "I am a string";
   return incrementVal + 10;
  strTest = strTest + 10;
  end
  end
   
   
  local retVal = pcall(myTest);
  local retOK, ret1 = pcall(myTest,"string value");
local msg = "";
if (retOK) then
  msg = "Function succeeded, result: " .. ret1 .. ".";
else
  msg = "Function failed, error text: " .. ret1 .. ".";
end
DEFAULT_CHAT_FRAME:AddMessage(msg);


====Result====
====Result====
pcall will catch the error that occured within 'myTest' and return false.
pcall will catch the error that occured within 'myTest', and output the appropriate text to the default chat window. If "string value" is replaced by a number, the code will output number+10 instead.
retVal = false;


==Details==
==Details==
: pcall will ''also'' return other arguments returned from the "function" if all is successful.
: pcall will ''also'' return other arguments returned from the "function" if all is successful.
----
__NOTOC__
{{Template:WoW API}}

Latest revision as of 04:47, 15 August 2023

WoW Lua

Calls a function, returning a boolean indicating success as the first return value, and error text / return values as the following values.

retOK, ret1, ret2, ... retn = pcall (func, arg1, arg2, ...);

Arguments[edit]

func
Function - The function that will be called (from within) pcall().
arg1 - argn
Variable - Any variable that is also to be passed with the function when its called (Optional).

Returns[edit]

retOK
Boolean - If the call to the function (that was passed to pcall) succeeded, returns true. If an error occured, returns false.
ret1
String (if failed) / Variable - If an error occured, error text is returned; if not, ret1 is the first return value of the original function.
ret2 - retn
Variable - If the function call succeeded, those return variables contain values returned by original function.

Example[edit]

function myTest(incrementVal)
  return incrementVal + 10;
end

local retOK, ret1 = pcall(myTest,"string value");
local msg = "";
if (retOK) then
 msg = "Function succeeded, result: " .. ret1 .. ".";
else
 msg = "Function failed, error text: " .. ret1 .. ".";
end
DEFAULT_CHAT_FRAME:AddMessage(msg);

Result[edit]

pcall will catch the error that occured within 'myTest', and output the appropriate text to the default chat window. If "string value" is replaced by a number, the code will output number+10 instead.

Details[edit]

pcall will also return other arguments returned from the "function" if all is successful.