The interface here was intentional. The idea is that we have a base exception interface which all exceptions must implement. When we throw an exception, we use the SPL Exception classes and throw appropriate exceptions. See this doc for more details on why this is important: https://wiki.php.net/pear/rfc/pear2_exception_policy