On Sunday, 5 June 2022 at 00:40:26 UTC, Ali Çehreli wrote:
[...]
Errors are thrown when the program is discovered to be in an
invalid state.
The following program throws an `Error` in popFront:
import std.range;
void main ()
{
int [1] a;
auto q = a[1..$]; // line 6
q.popFront; // line 7, throws
core.exception.AssertError
}
When the program counter (PC) is at line 6 the program is in a
valid state.
At no time the program is in an invalid state and it would not
pass into an invalid state if popFront threw an `Exception`
instead of an `Error`.