On 2014-10-06 18:03, Regan Heath wrote:
Why?
It gives us the benefits of error code return values:
- ability to easily/cheaply check for/compare them using "switch" on
code value (vs comparing/casting types)
- ability to pass through OS level codes directly
Without any of the penalties:
- checking for them after every call.
- losing the return value "slot" or having to engineer multiple return
values in the language.
- having to mix error codes in with valid return values (for int()
functions).
We also get:
- no type proliferation.
- no arguments about what exception types are needed, or the hierarchy
to put them in.
Seems like a win to me.
Then you'll always catch all exceptions. If error code doesn't match you
need to rethrow the exception. Or make a language change that allows to
catch based on the error code.
--
/Jacob Carlborg