Possibly, but it's not immediately apparent to me how that could be done. It seems important to enclose both ```$this->mock->foo();``` statements in full, separate try / catch blocks to ensure that the exceptions are called in the correct order and that the correct number of exceptions are thrown. Separating them into separate try / catch blocks (with catch blocks for both types of exceptions in both try / catch blocks) achieves both of those goals.

Furthermore, if we were to put the try / catch blocks into a separate helper function, wouldn't we have a problem with scope for both the```xxxExceptionThrown``` booleans, as well as the count on the number of exceptions thrown? I suppose we could pass return an array of which exceptions were caught and the number of exceptions that were thrown in each block, but that doesn't seem like a clean approach.

Not saying I'm correct, but that is my first impression after looking over the code again. Any suggestions are welcome.