Hi internals! A lot of people have been confused about engine exceptions currently displaying as normal fatal errors (if they aren't caught). We'll have to change this to use exception messages.
Before doing this I'd like to clean up the messages a bit to make them more friendly for CLI usage. Currently the messages are so cluttered that it's hard to find the actual error message if you're in an 80 char window. Patch is here: https://github.com/php/php-src/pull/1226 Previous message: Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Failed to open directory ""' in %s:%d Stack trace: #0 %s(%d): DirectoryIterator->__construct('\x00/abc') #1 {main} thrown in %s on line %d New message: UnexpectedValueException: Failed to open directory "" in %s on line %d Stack trace: #0 %s(%d): DirectoryIterator->__construct('\x00/abc') #1 {main} Essentially exceptions would display like ordinary error, but with "Fatal error" / "Warning" / ... replaced by the exception name, and showing a stack trace after the error. A side-effect of the change is that uncaught exceptions will always be displayed canonically and not based on __toString output. To modify display of exception output, people should modify the respective properties of the exception. Any objections to this? Thanks, Nikita