This type of exception is thrown by readObject() when it detects an exception
marker in the input stream. This marker indicates that when the object was
being serialized, an exception happened and this marker was inserted instead
of the original object. It is a way to "propagate" an exception from the code
that attempted to write the object to the code that is attempting to read the
object.