I think Associative Array should throw Exception

Steven Schveighoffer schveiguy at gmail.com
Fri Sep 4 12:08:40 UTC 2020


On 9/4/20 1:48 AM, Jesse Phillips wrote:
> On Thursday, 3 September 2020 at 15:12:14 UTC, Steven Schveighoffer wrote:
>> int[int] aa;
>> aa[4] = 5;
>> auto b = aa[4];
>>
>> How is this code broken? It's valid, will never throw, and there's no 
>> reason that we should break it by adding an exception into the mix.
>>
> 
> int foo() nothrow {
>      return "1".to!int;
> }
> 
> The following code is valid, will never throw, why does the compiler 
> prevent it?

You are still missing the point ;)

Your example doesn't compile today. Mine does. It's not a question of 
which way is better, but that we already have code that depends on the 
chosen solution, and changing now means breaking all such existing code.

My point of bringing up the example is that your assertion that "it is 
already broken" isn't true.

To put it another way, if the above to!int call compiled, and we 
switched to exceptions, it would be the same problem, even if the right 
choice is to use Exceptions.

-Steve


More information about the Digitalmars-d-learn mailing list