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`.

Reply via email to