Because some of exception classes create on the fly by eval function: ``` if (!class_exists($namespacedClassName, false)) { eval( 'namespace ' . __CLASS__ . '; final class ' . $className . ' extends \\' . __CLASS__ . ' {}' ); } ``` All these classes objects can't be unserialized, because you'll get [__PHP_Incomplete_Class_Name](http://www.php.net/manual/en/function.unserialize.php) Also use eval not a good practice at all, because of code auto-completion in this case.