Other than the porting guide (http://docs.python.org/3/howto/pyporting.html#capturing-the-currently-raised-exception), I'm not sure of a good source to read up on this.

The problem is that ``raise`` behaves differently in Python 3. Since it's a syntax error to call it as ``raise ExceptionType, exception_object, traceback_object``, it's in a eval/compile that is only bothered with when Python 2 is used.