It is mainly a part of how the Garbage Collection and Java automatic memory management is working. If you don't have ANY references to an object it will be impossible to clean it out of the memory. It is also possible to reuse an object that might have been left for the GC to clean. One of those functions is when a piece of code is generating the same exception over and over again. The JVM might then choose to reuse the same Exception object and reclaim it from the GC.
To fully understand this, you should read up on Java memory management.