Re: [RFC Discussion] Catching multiple exception types
| From: | Marco Pivetta | Date: | Wed, 09 Mar 2016 13:30:03 +0000 |
| Subject: | Re: [RFC Discussion] Catching multiple exception types | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-91588@lists.php.net to get a copy of this message | ||
On 9 March 2016 at 14:24, Pierrick Charron <pierrick@adoy.net> wrote:
>
> The thing I don't like about this approach is that I have to read the code
> and double check to make sure that the catch statement call the same method.
> For the amount of work that needs to be done in the Engine (see the patch
> attached to the RFC) this is far more readable and it is clear that the
> code to handle those 3 exceptions is the exact same one. And if the code of
> handleFailure is small you can even put it at this single place.
>
> public function stuff()
> {
> try {
> $this->willFail();
> } catch (FirstException | SecondException | ThirdException $e) {
> $this->handleFailure($e);
> }
> }
>
>
I'd still have to write 3 test cases anyway: no real amount of code-savings
there.
I still think the first solution is as readable as the one you proposed
there.
The change in the PHP engine might be trivial, but the syntax change from a
userland perspective is a mess (tooling, pretty much anything that relies
on an AST parser needs changes there).
Do not underestimate language changes as a php-core only issue.
Marco Pivetta
http://twitter.com/Ocramius
http://ocramius.github.com/