On Sunday, 5 October 2014 at 16:30:47 UTC, Ola Fosheim Grøstad
wrote:
On Sunday, 5 October 2014 at 15:03:08 UTC, ketmar via
Digitalmars-d wrote:
so Error should not be catchable and should crash immidiately,
without
any unwinding. as long as Errors are just another kind of
exception,
the promise must be kept.
I find it strange if you cannot recover from
out-of-memory-error. The common trick is to preallocate a bulk
of memory, then free it when you throw the out of memory
exception so that you can unwind. When destroying the
out-of-memory-object you need to reallocate the bulk of memory.
I know of several cases where this trick was used and it turned
out horribly wrong. OOE is NOT recoverable. It may be in some
cases, and you can use trick to make them recoverable in more
cases, like the one mentioned, but ultimately, you have no
guarantee, and worse, no way to know if you are in a recoverable
situation or not.
The only valid use case i know of to catch this kind of error is
at top level to return various error code. Even logging may be
broken at this point.