TITLE: Catching exceptions in initializer lists PROBLEM: Randy T. Merkel <73537.3705@CompuServe.COM> How does one catch a exception within a constructor that may be thrown from an initializer list? RESPONSE: heliotis.roch803@xerox.com (Jim Heliotis) You cannot catch exceptions from an initializer list, but that is often not a problem, because C++ automatically destructs initialized components: X::X( ... ): a(..), b(..), c(..), d(..) { .... } | BOOM! b gets destructed a gets destructed RESPONSE: bs@research.att.com (Bjarne Stroustrup), 31 Jul 95 I agree that this is rarely a problem, but I and the standards committee felt uncomfortable about there being no way, so you can now write something like this: X::X( ... ) try : a(..), b(..), c(..), d(..) { // ... } catch(...) { // oops! } to catch exceptions from an initializer list. That is the function body - including the initializers - can be a try block. This is a recent feature. Undoubtedly, it will take some time for it to become widely available.