Message 87804 - Python tracker
This is normal behaviour, actually. The RuntimeError *is* raised, but you catch it in the except clause and then recurse again ad infinitum. The interpreter realizes that it "cannot recover from stack overflow", as the message says, and then bails out.