lua-users home
lua-l archive

Re: [ANN] Lua 5.3.0 (final) now available

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


It was thus said that the Great Andrew Starks once stated:
> On Thursday, January 15, 2015, Tim Hill <drtimhill@gmail.com> wrote:
> 
> I think it might be useful to reserve the word "error" for "things that
> disrupt the stack" and something like "fail" for a return value that
> indicates the function's failure to return a result.
 I go into some detail about this in my blog:
	http://boston.conman.org/2009/12/01.2
 I classify errors into four types (one of which could be considered "a
bug") and I mention there are only three ways to handling them.
> Thinking about something in a different way has implications. If we stop
> conflating exceptional return values ;) by calling them "errors", it may
> help clarify their roll.
 Lisp people talk about "conditions", not "errors". 
> open_file"foo"
> -->false, "NO 'foo'"
> read_next_chunk()
> -->nil, "TIMEOUT"
> 
> Both of these make sense to me and would make less sense to me if they were
> reversed. Also, neither are errors in programming or in the system. As far
> as the context of the program is concerned, neither are errors, at all.
 But both can be handled the same way:
	fp,err = open_file "foo"
	if not fp then
	 blowup(err)
	end
	data,err = read_next_chunk()
	if not data then
	 blowup(err)
	end
but only because nil and false are falsey values. 
 -spc

AltStyle によって変換されたページ (->オリジナル) /