Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #14538
| From | Jerry Stuckle <jstucklex@attglobal.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: OO PHP result of new if a constructor fails |
| Date | 2014-11-11 12:56 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <m3tijv$8b3$1@dont-email.me> (permalink) |
| References | (1 earlier) <m3t9et$t8s$1@dont-email.me> <m3tbjo$78r$1@dont-email.me> <m3tc0l$8ic$1@dont-email.me> <m3tdce$fd0$1@dont-email.me> <87d28twu1k.fsf@ahungry.com> |
On 11/11/2014 12:01 PM, Matthew Carter wrote:
> "James Harris" <james.harris.1@gmail.com> writes:
>
>> "Jerry Stuckle" <jstucklex@attglobal.net> wrote in message
>> news:m3tc0l$8ic$1@dont-email.me...
>>> On 11/11/2014 10:56 AM, James Harris wrote:
>>>
>>> No, specifically - how can it fail?
>>>
>>
>> ...
>>
>>> Specifically, how would the constructor fail?
>>>
>>> I'm not trying to give you a hard time.
>>
>> Are you sure? .... :-(
>>
>>> You can't answer what happens
>>> in case of failure without understanding the failure itself.
>>
>> I think you may be talking about something else. I guess there are lots of
>> ways a constructor can fail: out of memory, no access to a resource, invalid
>> parameter value, incompatible parameters, disk IO error, network outage,
>> invalid credentials, faulty program etc etc. Without knowing the internals
>> of a particular constructor (not a good idea) your question about how that
>> constructor can fail cannot be answered. Even if it could the answer(s)
>> might change when a new version of that constructor is released. So there is
>> no way to sensibly enumerate all potential causes of failure and derive
>> findings from that.
>>
>> So rather than asking about a specific constructor I was looking to see if
>> there was a PHP rule that could always be applied.
>>
>> If that's not what you mean can you explain what you have in mind? I cannot
>> understand your meaning from what you have said so far.
>>
>> James
>>
>>
>
> Hi James,
>
> Please see/run the snippet:
>
> <?php
>
> class foo
> {
> public function __construct()
> {
> $pdo = new PDO('mysql:host=localhost;dbname=fail', 'fail', 'fail');
> }
> }
>
> try
> {
> $a = new foo();
> }
> catch(Exception $e)
> {
> // Catching what will be a PDO exception
> }
>
> var_dump($a);
> ?>
>
> You will notice that $a is simply undefined (and if you do not have the
> try/catch block, you won't make it that far, as your uncaught exception
> will bubble up and terminate the script).
>
But in this case the assignment to $a will not occur due to the
exception being thrown. So of course $a will contain the previous value
or, as in your example, not being previously defined, is undefined.
> Most things that would cause an aspect of php to 'fail' are just built
> in exceptions (or for something like divide by zero, a notice will be
> thrown but $a will still be the class instance).
>
Actually, it's a warning, not a notice.
> I'm not sure how else you could cause a construct to 'fail'.
>
Which is the root of my question.
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
OO PHP result of new if a constructor fails "James Harris" <james.harris.1@gmail.com> - 2014-11-11 15:13 +0000
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-11 10:20 -0500
Re: OO PHP result of new if a constructor fails "James Harris" <james.harris.1@gmail.com> - 2014-11-11 15:56 +0000
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-11 11:03 -0500
Re: OO PHP result of new if a constructor fails "James Harris" <james.harris.1@gmail.com> - 2014-11-11 16:27 +0000
Re: OO PHP result of new if a constructor fails Matthew Carter <m@ahungry.com> - 2014-11-11 12:01 -0500
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-11 12:56 -0500
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-11 12:52 -0500
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-11 18:12 +0100
Re: OO PHP result of new if a constructor fails Richard Damon <Richard@Damon-Family.org> - 2014-11-11 13:03 -0500
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-11 23:54 +0100
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-12 03:00 +0100
Re: OO PHP result of new if a constructor fails Matthew Carter <m@ahungry.com> - 2014-11-11 22:25 -0500
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-11 22:36 -0500
Re: OO PHP result of new if a constructor fails Matthew Carter <m@ahungry.com> - 2014-11-12 01:30 -0500
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-12 07:08 -0500
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-12 13:30 +0100
Re: OO PHP result of new if a constructor fails Denis McMahon <denismfmcmahon@gmail.com> - 2014-11-12 13:52 +0000
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-13 00:46 +0100
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-12 22:28 -0500
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-12 21:30 +0100
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-13 01:15 +0100
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-13 04:09 +0100
Re: OO PHP result of new if a constructor fails Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2014-11-13 07:42 +0000
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-13 14:11 +0100
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-13 21:40 +0100
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-14 13:49 +0100
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-14 23:25 +0100
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-12 22:29 -0500
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-13 21:45 +0100
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-13 15:56 -0500
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-13 22:09 +0100
Re: OO PHP result of new if a constructor fails Jerry Stuckle <jstucklex@attglobal.net> - 2014-11-13 21:03 -0500
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-13 22:47 +0100
Re: OO PHP result of new if a constructor fails Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2014-11-13 22:59 +0100
Re: OO PHP result of new if a constructor fails "Christoph M. Becker" <cmbecker69@arcor.de> - 2014-11-18 19:02 +0100
csiph-web