What's the reason for having `exception()` call `exceptionQueue()` instead of putting this code directly inside `exception()`?

Also, is the `q2 = q` assignment for getting around the type system?