Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:67175 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 31302 invoked from network); 26 Apr 2013 19:15:15 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Apr 2013 19:15:15 -0000 Authentication-Results: pb1.pair.com header.from=andreas@heigl.org; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=andreas@heigl.org; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain heigl.org from 176.9.19.43 cause and error) X-PHP-List-Original-Sender: andreas@heigl.org X-Host-Fingerprint: 176.9.19.43 stegro-cos-pro-100.unaxus.net Received: from [176.9.19.43] ([176.9.19.43:48308] helo=stegro-cos-pro-100.unaxus.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E2/08-15719-042DA715 for ; Fri, 26 Apr 2013 15:15:13 -0400 Received: from tmo-102-203.customers.d1-online.com ([80.187.102.203]:31410 helo=wdv-hg-0-C-07-z9288-Heigl-Andreas.local) by stegro-cos-pro-100.unaxus.net with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.80) (envelope-from ) id 1UVo6t-000NPJ-L1; Fri, 26 Apr 2013 21:15:09 +0200 Message-ID: <517AD23A.7010505@heigl.org> Date: Fri, 26 Apr 2013 21:15:06 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5 MIME-Version: 1.0 To: Julien Pauli CC: PHP Internals References: In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms060102010502010106070702" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - stegro-cos-pro-100.unaxus.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - heigl.org X-Get-Message-Sender-Via: stegro-cos-pro-100.unaxus.net: authenticated_id: a.heigl+heigl.org/only user confirmed/virtual account not confirmed Subject: Re: [PHP-DEV] Continued try blocks From: andreas@heigl.org (Andreas Heigl) --------------ms060102010502010106070702 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Am 26.04.13 16:41, schrieb Julien Pauli: > Hello internals, >=20 > I had an idea recently with a friend, about a feature try-catch blocks > could use. > Let me just write an example, you will quickly understand the idea : >=20 > * * > * > *try {* > * foo();* > * bar();* > * baz();* > *} catch (SomeException $e) {* > * dosomestuff();* > * continue; /* Here is the feature, go back to try block */* > *} catch (Exception $e) {* > * dosomething();* > *}* >=20 >=20 >=20 > The continue keyword would resume the execution from where it had > diverged, according to the function which led to the SomeException > catch block. >=20 > So, in this example, if, say, bar() throws a SomeException , the code > would then resume and execute baz() after the catch block. >=20 > Just presenting the idea here, no RFC actually , I'm collecting > thoughts and notices. >=20 > Julien.Pauli >=20 Hi Julien. What about the following example? try { $foo =3D $bar->getObject(); $foo->doSomething() } catch(Exception $e) { continue // Or whatever shall be used } When $bar->getObject throws an Exception no $foo is set. So the next line will result in a "PHP Fatal error: Call to a member function doSomething() on a non-object". So where shall the "continue" actually continue? In the line after the exception was thrown? In the line following the last line $foo was accessed in? Or would something like CreateTryCatchBlockForEverySingleLine { $bar->doOne(); $bar->doNext(); $bar->doSomethingElse(); } catch(Exception $e) { doSomethingWithTheException($e); } resulting in try { $bar->doOne(); } catch(Exception $e) { doSomethingWithTheException($e); } try { $bar->doNext(); } catch(Exception $e) { doSomethingWithTheException($e); } try { $bar->doSomethingElse(); } catch(Exception $e) { doSomethingWithTheException($e); } be more what you are talking about? Regards Andreas --=20 ,,, (o o) +---------------------------------------------------------ooO-(_)-Ooo-+ | Andreas Heigl | | mailto:andreas@heigl.org N 50=B022'59.5" E 08=B023'58"= | | http://andreas.heigl.org http://hei.gl/wiFKy7 | +---------------------------------------------------------------------+ | http://hei.gl/root-ca | +---------------------------------------------------------------------+ --------------ms060102010502010106070702 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Kryptografische Unterschrift MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIFrDCC BagwggOQoAMCAQICAwwmgTANBgkqhkiG9w0BAQUFADB5MRAwDgYDVQQKEwdSb290IENBMR4w HAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmlu ZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZzAeFw0xMjA4 MjIwNDM0NDVaFw0xNDA4MjIwNDM0NDVaMFwxFjAUBgNVBAMTDUFuZHJlYXMgSGVpZ2wxIDAe BgkqhkiG9w0BCQEWEWEuaGVpZ2xAaGVpZ2wub3JnMSAwHgYJKoZIhvcNAQkBFhFhbmRyZWFz QGhlaWdsLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKfpctxYUsO8BeCW VSKQEBTZG/rebtko/5lT/YdNYNbQEnaa4rsYPdwZnFsoqiw7qXo9KqqYupQnwbpv/zmI9CY0 vnP4sb/7C3+nfVI4wBZzlQDsIkBD2mK9QJxX5i3QvOjFY7kwTasRn+KgHa1cyKWQksxTh/kD 2bdhlVIqPfFszusilARmIrROtngxyFPA8x0DAEsHEKgDO1yDhiPiop34hAt9/Qt2Fzne1z1v 5dPtjNYtjmtAocT6EqogB29h+qopBkUcEFem1JdRcF5grlrhRPR+mcw/u2iqv/2YuUr4W8M1 5XBKjkj9puKp16TWUfT/HBjL2KbyThJG0tMCnuECAwEAAaOCAVQwggFQMAwGA1UdEwEB/wQC MAAwVgYJYIZIAYb4QgENBEkWR1RvIGdldCB5b3VyIG93biBjZXJ0aWZpY2F0ZSBmb3IgRlJF RSBoZWFkIG92ZXIgdG8gaHR0cDovL3d3dy5DQWNlcnQub3JnMA4GA1UdDwEB/wQEAwIDqDBA BgNVHSUEOTA3BggrBgEFBQcDBAYIKwYBBQUHAwIGCisGAQQBgjcKAwQGCisGAQQBgjcKAwMG CWCGSAGG+EIEATAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLmNh Y2VydC5vcmcwMQYDVR0fBCowKDAmoCSgIoYgaHR0cDovL2NybC5jYWNlcnQub3JnL3Jldm9r ZS5jcmwwLwYDVR0RBCgwJoERYS5oZWlnbEBoZWlnbC5vcmeBEWFuZHJlYXNAaGVpZ2wub3Jn MA0GCSqGSIb3DQEBBQUAA4ICAQCP0cqIgFPOZV0jHbaxA29mlebJO1VDIgC8lulY6vmVSvEq 8su70Gh+urVAimaQ4dHPhLM6XwaCSi97/vsaPyJbwEYxbyFyBbqkl8RjcEumISw3FQew0hEh pVcvKvj9MRIJV/vpqkE8vrGlODtdL8NXNc/W552DOh+ivU3OwuKZwJycgrTgvZBXYjNYz5yF me6VZTM74bpstMhrHEUF75/PMWToy0dQ8vSGn1qiolvsd9zfwxLdZQL69RvNEj7EWU+1hxim N1OIM0HpJLHubeys1Hq8uMNPTjoFwr6Mw83jktJnys9dJwWyfv0gIs6n+sGta28F5OKwNWqH Pq7VYxu9IsLYzn9y/kGrMdlkGbT4moJAZNQhwF3RgAK5tc219johcKDor7idQadpUUfJfkNC +c2RZwozkD+NA0W/MoCRLNZF4s5P2BA6MBe+GcZZchF+L+/5JzZD9GIKW810/AEpQHg2ZTpV +UM70mSLandSx9VWCrLB98Q7e+Kh3jcwSPDcfiGgh8A8Dewavfdk/dATt4fuNGPD+HdNzQ7j JYWQdGTNVz5NVkGB5UMUik60aYEO6kxqDm/M8pAZNf/V5597HGlpAi/b43tKAamTNB7vUTSv 17Q0DT/CvGj0vErd7uyudgunhFIm0m0bn/HUn7mTQP+KwnAjaHwfCpOioh3eGTGCA6EwggOd AgEBMIGAMHkxEDAOBgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0 Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ ARYSc3VwcG9ydEBjYWNlcnQub3JnAgMMJoEwCQYFKw4DAhoFAKCCAfUwGAYJKoZIhvcNAQkD MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwNDI2MTkxNTA2WjAjBgkqhkiG9w0B CQQxFgQUtOJwIsZQ4aM9SHzXj6txDIknm7gwbAYJKoZIhvcNAQkPMV8wXTALBglghkgBZQME ASowCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0D AgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCBkQYJKwYBBAGCNxAEMYGDMIGAMHkxEDAO BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UE AxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBj YWNlcnQub3JnAgMMJoEwgZMGCyqGSIb3DQEJEAILMYGDoIGAMHkxEDAOBgNVBAoTB1Jvb3Qg Q0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZQ0EgQ2VydCBT aWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9ydEBjYWNlcnQub3JnAgMM JoEwDQYJKoZIhvcNAQEBBQAEggEATFI/pkdg6592uWMj/RStO0kAWyN2JpaEALVr3VwM9foA BRiUilJqwoMWahfYFPtKgj9ETQH8VwTLZ+jRnVQn9OyvgwEY9TYLk3SsiDtI8thqCDpdS0jZ 0W+pRjMG0PiJjMup5rDhGUTHjmV3aFRRzYkapsbYE4LmOqQ50uYafvTpE+vDzlJ9zdVQT6p7 niJgcU7H8nv62Dw8stmpqz6xJXqVFnKbVXWOYRzSDmdHNffcqWe0pDBD+sjC0O6cY/xnaJFp CxO75Y0j3bNZTbRUdJj1zXO1Z22xbUS94ESw9cW4WMUqXF9VkOfPDBLrhmbun40PXbKTF1oz YYslKvFhCwAAAAAAAA== --------------ms060102010502010106070702--