2014/1/18 Justin Cormack <justin@specialbusservice.com>:
On Sat, Jan 18, 2014 at 9:59 AM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
2014/1/18 Peng Zhicheng <pengzhicheng1986@gmail.com>:
IMHO, `assert' and `error' have quite different semantics and use cases.
So, it is quite reasonable for me that `assert' only accept a string
message, since it is to give the (interactive session) user some clue
about what went wrong, instead of to give `pcall' the `error object' to
examine (and maybe to retry or recover) in a programamtic way,
in which case `error' should be used.
I think you are missing Peng Zhicheng's point, which can be
paraphrased as:
Programs have two kinds of errors:
1. Bugs. When detected, use assert() with its blunt and brutal stop.
2. User errors. When detected, use error() with all its flexibility.