On 9/1/20 2:20 PM, Jesse Phillips wrote:
Using RangeError is nice as it allows code to use array index inside
`nothrow.`
This is the big sticking point -- code that is nothrow would no longer
be able to use AAs. It makes the idea, unfortunately, a non-starter.
What is wrong with using `in`? I use this mostly:
if(auto v = key in aa) { /* use v */ }
Note, that in certain cases, I want to turn *normal* array access errors
into exceptions, because I always want bounds checking on, but I don't
want a (caught) programming error to bring down my whole vibe.d server.
So I created a simple wrapper around arrays which throws exceptions on
out-of-bounds access. You could do a similar thing with AAs. It's just
that the declaration syntax isn't as nice.
-Steve