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.