Let's see if I can explain, @dennisdoomen. You can see the usage in [DefaultExceptionThrowerTests.cs, line 186](https://github.com/FakeItEasy/FakeItEasy/pull/221/files#diff-beaf77a9a003a5989f9076a709f578f1R186).

I'm sure you understand that this is a convenience method to

1. make sure a variable is not `null`, 
1. make sure the variable is of a certain exception type, and
1. provide a convenient way to make other assertions against the variable, taking into account that we now know that it's an exception

If you're wondering why do this instead of using `ShouldThrow`, it all goes back to an older code inspection where @adamralph (I think he made the comment. Him or @philippdolder.) mentioned that he preferred to separate the action and the assertion, so the DefaultExceptionThrowerTests tests were rewritten to harvest the exception (if any) thrown in the Act phase and then Assert against the exception. For this issue, I was checking other exceptions and wanted to reuse the code, so I moved it from the old private method into this new extension method for easier access (and better reading, I thought).