Exception Handling
During the course of testing software to understand all the ways it can be broken, it pays to induce all the error messages that the software is capable of providing.
Primarily because exception handlers lead to an unexpected change in the instruction pointer of the program without a corresponding relevant change in the underlying state of the program - for instance:
- unclosed files
- unclosed database connection pools
This could open up a new class of unexpected behaviours when executing an action that might have been handled appropriately/gracefully before hand.