Bad array indexing is considered deadly
Ali Çehreli via Digitalmars-d
digitalmars-d at puremagic.com
Wed May 31 14:57:04 PDT 2017
On 05/31/2017 02:41 PM, Ola Fosheim Grøstad wrote:
> On Wednesday, 31 May 2017 at 21:30:05 UTC, Ali Çehreli wrote:
>> How could an Exception work in this case? Catch it and repeat the same
>> bug over and over again? What would the program be achieving? (I
>> assume the exception handler will not arbitrarily decrease index
values.)
>
> How is this different from a file system exception?
> The file system is memory too...
When you say "memory" I think you refer to the thought of bounds
checking being for prevention of memory corruption. True, memory
corruption can happen when the program writes out of bounds but it's one
special case. The actual reason for bounds checking is maintaining an
invariant.
Regarding the file system, because it's part of the environment of the
program, hence the program cannot control, it's correct to throw an
Exception, in which case the response can be "Cannot open that file; how
about another one?".
In the case of array indexes, they are in complete control of the
program, hence a bug when out of bounds. It's not possible to say "Bad
index; let me try 42 less."
Ali
More information about the Digitalmars-d
mailing list