A constructor or destructor function try block's handler code must finish by emitting some exception. There's no other way. As long as you don't try to violate exception specifications, the language doesn't care what exception it is that gets emitted -- it can be the original one or some other translated exception -- but an exception there must be!引自 Item 18