WoW:API pcall: Difference between revisions

473 bytes added ,  25 March 2010
{{luaapi}}
(Change category from "LUA Functions" to "Lua functions".)
({{luaapi}})
Line 1: Line 1:
<center>'''pcall''' ''-Documentation by [[user:Darjk|Darjk]]-''</center>
{{luaapi}}
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 : Boolean - If the call to the function (that was passed to pcall) succeeded, returns true. If an error occured, returns false.
retVal = pcall (func, arg1, arg2, ...);
;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.
== Parameters ==
=== Arguments ===
:(func, arg1, arg2, ...)
 
:;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()
  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.
{{LUA}}