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.

Reply via email to