On Wednesday, 13 June 2018 at 00:38:55 UTC, Jonathan M Davis
wrote:
It's possible to write programs that check and handle running
out of memory, but most programs don't, and usually, if a
program runs out of memory, it can't do anything about it and
can't function properly at that point.
Simulations that run out of memory are likely unable to recover
from OutOfMemoryError. Transactional programs like webservers
are likely to run out of memory due to an unusually large request.
The idea is that it's a bug in your code if you ever index an
array with an index that's out-of-bounds. If there's any risk
of indexing incorrectly, then the program needs to check for
it, or it's a bug in the program. Most indices are not taken
from program input, so treating them as input in the general
case wouldn't really make sense
The case I find is almost invariably a hard-coded index into
input data, like a CSV file that is supposed to have ten columns
but only has eight.
This is often a bug in my program simply because most exceptions
I encounter are bugs in my program.
- plus, of course, treating them as program input in the
general case would mean using Exceptions, which would then kill
nothrow.
Which goes back to my point of problems that could be caused by
too wide a range of code being Errors.