WoW:API pcall: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(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}}

Revision as of 23:03, 25 March 2010

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

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

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

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

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

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