The basic problem with exception handling is that it is difficult! Exception handling in modern languages makes it easy to drastically change the contents of memory. The next instruction executed may be very distant from the site of the exception, and required cleanup might not be done. In C++ the problem can be particularly acute, with lost memory not reclaimed correctly. For these reasons, it's critical for good testing of exception handling that we test all representative sequences of normal and exceptional calls.
Better Software Magazine Archive: