I also need an answer to this problem. I'm using windows. Throwing an exception in thread B from thread A using a callback function. The function runs, but the thread never actually catches the exception. The try/except block is in the run() method (over-riden from the Thread class)