Re: [STANDARDS] [PHP-BUG] Req #67860 [NEW]: Throw an "acceptable" exception

[email protected] (Martin Scotta)
Newsgroups php.standards
Message-ID <CA+tCNCWs=t0ERU-6zB=V1d86utGveJuArBASWBJVPLY-wPq-QA@mail.gmail.com>
I love this one!
How about a marker interface instead of a new keyword?

class DivisionByZero extends Exception implements CasualException ...
 El ago 18, 2014 10:13 PM, "david dot proweb at gmail dot com" <
[email protected]> escribió:

> From:             david dot proweb at gmail dot com
> Operating system: Irrelevant
> PHP version:      Irrelevant
> Package:          PHP Language Specification
> Bug Type:         Feature/Change Request
> Bug description:Throw an "acceptable" exception
>
> Description:
> ------------
> Imagine that you do ($a / $b), but $b is zero.
> So you will receives "Warning: Division by zero.".
>
> You can avoid that by doing @($a / $b), something like that.
>
> But imagine if PHP can thrown an exception that not need be captured.
> It is: you can, optionally, capture that, but if not, will only thrown a
> notice, instead of warning.
>
> // Supposing that it is the PHP division constructor:
> function php_div($a, $b) {
>     if($b === 0) {
>         throw casual new Exception("Division by zero.");
>     }
>
>     return $a / $b;
> }
>
> // So if I do:
> 5 / 0; // Notice: Division by zero.
>
> // But I can do:
> try { 5 / 0; }
> catch(Exception $e) { ... } // Avoid notice.
>
> // Or even:
> @(5 / 0); // Avoid casual Exception.
>
> --
>
> User can throw casual exceptions too.
> For instance:
>
> function name_fix($name) {
>     ...
>     if(name_uncommon($name)) {
>         throw casual new Exception("This name is uncommon.");
>     }
>     ...
>     return $name_fixed;
> }
>
> echo name_fix("David"); // David
> echo name_fix("Hakuna Matata"); // Hakuna Matata + Notice
>
> // When you capture that, statement will be blocked.
> try { echo name_fix("Hakuna Matata"); }
> catch(Exception $e) { echo "The Hakuna Matata is so uncommon."; }
> // -> The Hakuna Matata is so uncommon. (not echo name, not notice)
>
> --
>
> Exception need a new property like `boolean $isCasual`
> ($e->isCasual()).
>
> --
>
> Note: apply it to "division by zero" is only to examplify my feature
> request.
>
>
> --
> Edit bug report at https://bugs.php.net/bug.php?id=67860&edit=1
> --
>
>
> --
> PHP Naming Standardization Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.