How the heck is onInvalidMemoryOperationError() nothrow?
Jeremy DeHaan via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri May 6 08:07:42 PDT 2016
On Friday, 6 May 2016 at 03:24:23 UTC, tsbockman wrote:
> On Friday, 6 May 2016 at 02:57:59 UTC, Jeremy DeHaan wrote:
>> [...]
>
> From the spec
> (https://dlang.org/spec/function.html#nothrow-functions):
> "Nothrow functions can only throw exceptions derived from
> class Error."
>
> Throwing an Error is, for many purposes, considered
> fundamentally different than throwing an Exception because
> Error objects aren't meant to be caught by user code. Throwing
> an Error is supposed to just be a way of crashing the program
> with a nice message and stack trace.
>
> A key benefit of this distinction, is that it enables the use
> of `assert()` statements in `nothrow` code.
Oh, interesting. That makes sense, thanks.
More information about the Digitalmars-d-learn
mailing list