Markus Malkusch:
> The try-finally scenario involves only one supressed
> exception. I'd like to see a possibility to add more supressed
> exceptions
Actually try-finally can already involve several supressed exceptions as
well:
try {
throw new Exception("Exception 1");
} finally {
try {
throw new Exception("Exception 2");
} finally {
throw new Exception("Exception 3");
}
}
So in this scenario I exception 3 will be the resulting exception and as
already defined within your mail exception 2 should be its supressed
exception.
But what about exception 1? This could now be the supressed exception of
exception 2 or added to the list of supressed exceptions of exception 3.
I'd argue *adding* it to the resulting exception of the finally block
makes the most sense. This would be exception 3 in this case and
therefore needs to be a list. Why does this make more sense. I'd argue
it's more expected and intuitive, as exception 2 is optional. Just
consider a similar case without exception 2:
try {
throw new Exception("Exception 1");
} finally {
try {
} finally {
throw new Exception("Exception 3");
}
}
In this case the only place for the suppressed exception 1 can be
exception 3. For consistency and simplicity I'd therefore suggest that a
Throwable has a list of supressed exceptions and a suppressed exception
is always added to the resulting exception of a finally block.
Markus Malkusch
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php