RE: Announcing RFC 'Anonymous Catches'
| From: | Joost Koehoorn | Date: | Tue, 25 Jun 2013 11:18:50 +0000 |
| Subject: | RE: Announcing RFC 'Anonymous Catches' | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-67802@lists.php.net to get a copy of this message | ||
> Hi all,
>
> I just published an RFC that proposes to add catch-statement without needing to specify a
> variable, and support for fully > anonymous catches.
>
> Details can be found at:
>
> https://wiki.php.net/rfc/anonymous_catch
>
> Regards,
>
> Joost Koehoorn
>
Hi.
I am not sure about complete anonymous catch statement (like try { } catch { }), but I really like
the proposal for omitting the exception variable.
Because in frameworks like Symfony there are defined and used a lot of special exception types for
each cases.
Here's an example that shows what I mean:
try {
$foo->authenticate($user);
} catch (BadCredentialsException) {
echo "Bad credentials";
} catch (InactiveAccount) {
echo "Sorry, your account is not active anymore.";
} catch (CurlErrorOnAuthService) {
echo "Please try again later, the login service is currently unavailable.";
} catch (Exception) {
echo "bla blubb";
}
In such a case you do not need any
$evariable. Netbeans for example always
highlight's these variables because it is not used anywhere. But I think it looks a bit cleaner
if the variable could be omitted, if it's not needed ;-)
Best regards
Christian
This is exactly the reason, yes!
As stated in the RFC, I think it's best that we consider the two ways separately. Omitting the
variable is a much smaller change (and requires very little code changes) than having a fully
anonymous catch.
I originally dived into this because of a question of Phil Sturgeon on twitter, requesting for
making the variable optional. I took it one step further and made the whole thing optional, but
surely we can decide to only make the variable optional, I can see how it's bad programming
practice to have fully anonymous blocks (even though sometimes they may be used). Just throwing this
out here to see what you think about it.
Regards,
Joost