From: Jeroen v. d. Z. <je...@fo...> - 2004-09-24 16:27:34
|
On Friday 24 September 2004 11:15 am, Lothar Scholz wrote: > Hello Niall, > > ND> Exception throwing code, if it is to work correctly at all, requires > ND> a very different style of design and implementation. Grafting it onto > ND> code not written with it in mind gives the illusion that graceful > ND> recovery from exception throws works when in fact it may only do so > ND> some of the time under special conditions. Even the world's best C++ > ND> programmers find it tough to get exception unwinding to work in code > ND> written specifically for it - ask STL implementors. > > Right, that is the reason why a lot of languages simply don't handle out > of memory errors - most famous of course Java. > And this seems good, otherwise the overhead at least in a language > without GC like C++ is terrible high. > > So i would simply don't care about this and only add some handler for > a coordinated crash (saving data before, putting up a dialog etc). > > If you run out of memory, you should really move to another fault > handling level, like having a super process. > > Doing it right with exceptions is difficult. The strategy I'm following is based on the idea of "checkpoints". Every time you do a callback, you get further into the computation; however, we know we were still OK before the callback, so that is a point to which we can safely back up. In interactive programs, nothing happens except in response to a callback, to putting the try{ } catch () {} around that seemed like a good start; it will probably be refined over time, since some exceptions should indeed propagate up, and others not. I'm open to suggestions; however, the bottom line is that this time, exceptions are likely here to stay; we're really just debating how far we'll go with this. At any rate, the current snapshot would cover a big part of the resource problems people are likely to encounter. So I believe its a good step forward to having applications deal with resource issues gracefully. BTW, any progress on the sizeof() questions with in FXThread? - Jeroen |