Navigation menu

WoW:API pcall: Difference between revisions

Jump to navigation Jump to search
479 bytes added ,  2 August 2025
no edit summary
(Change category from "LUA Functions" to "Lua functions".)
No edit summary
 
(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, ...);


Native Lua statement:
== 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).


Returns a boolean value to catch errors from the function call (func).
== Returns ==
 
;retOK
retVal = pcall (func, arg1, arg2, ...);
: Boolean - If the call to the function (that was passed to pcall) succeeded, returns true. If an error occured, returns false.
 
;ret1
== Parameters ==
: String (if failed) / Variable - If an error occured, error text is returned; if not, ret1 is the first return value of the original function.
=== Arguments ===
;ret2 - retn
:(func, arg1, arg2, ...)
: Variable - If the function call succeeded, those return variables contain values returned by original function.
 
:;func : Function - The function that will be called (from within) pcall().
:;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()
<pre>
  local strTest = "I am a string";
function myTest(incrementVal)
  strTest = strTest + 10;
  return incrementVal + 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);
</pre>


====Result====
==== Result ====
pcall will catch the error that occured within 'myTest' and return false.
'pcall' will catch the error that occurred 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.
{{LUA}}