You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We start actively discriminating between recoverable and non-recoverable errors when we discuss things.
We mainly use asserts (particularly doAssert) when we are trying to detect non-recoverable errors in the code. Most APIs should be rather strict about their inputs.
We bless the use of both exceptions and error codes for recoverable errors (the more appropriate is selected on a case-by-case basis). We make an active effort to document the recoverable errors of each API when we design it.
We gradually introduce the helpers from zah's proposal to turn the documented APIs into compiler-checked specifications.