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

Reply via email to