[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: pcall fails
- From: "Thijs Schreijer" <thijs@...>
- Date: Tue, 20 Sep 2011 14:22:19 +0200
Probably a stupid thingy, but can't seem to get it;
This code (part of a larger object)
20	-- add a filter to my list, no duplicates will be added, flt is
string or table
21	add = function (self, flt)
22		if type(flt) == "string" then
23			flt = self:split(flt)
24		end
25		assert(type(flt) == "table", "cannot add filter, string or
table expected, got " .. type (flt))
26		if not flt.filter then
27			flt.filter = string.concat(flt, ".")
28		end
29		if not self.filters[flt.filter] then -- only add if not in
the list already
30			self.filters[flt.filter] = flt
31		end
32	end,
When called with this test;
133	local s = pcall(filters:add(123))
134	assert( not s, "error expected because of a number")
Gives me this error;
lua: xplfilter.lua:25: cannot add filter, string or table expected, got
number
stack traceback:
	[C]: in function 'assert'
	xplfilter.lua:25: in function 'add'
	xplfilter.lua:133: in main chunk
	[C]: ?
Question is; The error is obvious, but why doesn't the pcall on line 133
catch the error and return true in local s?
Lua for windows, code uses only 1 external require; "loop.simple" for the
object creation.
Any help is appreciated.
Thijs