The Exception __toString implementation will also include the string representation of previous exceptions chained to this exception, _before_ the string representation of the current exception.
For example:
<?php
class OuterException extends Exception {}
class MiddleException extends Exception {}
class InnerException extends Exception {}
$excA = new InnerException("inner exception", 0);
$excB = new MiddleException("middle exception", 0, $excA);
$excC = new OuterException("outer exception", 0, $excB);
echo "The exception is:\n$excC";
?>
will print the following:
The exception is:
InnerException: inner exception in test.php:6
Stack trace:
#0 {main}
Next MiddleException: middle exception in test.php:7
Stack trace:
#0 {main}
Next OuterException: outer exception in test.php:8
Stack trace:
#0 {main}