[prev in list] [next in list] [prev in thread] [next in thread]
List: php-internals
Subject: [PHP-DEV] Throwable::addSuppressed()
From: 85.179.132.148
Date: 2015-07-28 21:51:39
Message-ID: E6.64.22108.E69F7B55 () pb1 ! pair ! com
[Download RAW message or body]
Hi PHP
So I read that there's this Throwable interface coming. Great! How about
extending it with one further method:
void Throwable::addSuppressed(Throwable exception)
Semantic is the same as Java's Throwable.addSuppressed() ¹.
Why? Well consider a code fragment which wants to close a resource
during an exception:
} catch (Exception $e1) {
try {
$resource->close();
throw $e1;
} catch (ResourceException $e2) {
// The information about $e2 is lost.
throw $e1;
}
}
Currently PHP has no method to propagate both $e1 and $e2. With
Throwable::addSuppressed() $e2 could be added as a suppressed exception
to $e1:
} catch (Exception $e1) {
try {
$resource->close();
} catch (ResourceException $e2) {
e1->addSuppressed($e2);
}
throw $e1;
}
To make this information useful (for e.g. a logger) there's one further
method needed:
Throwable[] Throwable::getSuppressed()
So PHP, what do you think, might a RFC find acceptance?
Best wishes
Markus Malkusch
[1]:
http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html#addSuppressed-java.lang.Throwable-
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic