In a single process (I think) only one exception can be thrown at a time. The reason for this is because of the code execution described above by Banfa. No other exception can be created because the only code being executed is the code for the original exception.
That sounds reasonable, but what happens in a threaded environment? Since any number of threads can be running concurrently, any number of exceptions could be thrown. But the same logic for having a single exception per process also applies to threads. Each thread processes a single exception at a time and when the exception goes beyond the scope of the thread, the thread is terminated. I don't believe that will cause the entire program to be stopped.