----- Original Message -----
From: "Tumurbaatar S." tumurbaatar@datacom.mn
Newsgroups: php.general
Sent: Thursday, April 08, 2004 17:44
Subject: Re: [PHP] Exceptions and builtin functions in PHP5
daniel@electroteque.org wrote in message
news:49201.203.15.102.65.1081404627.squirrel@www.electroteque.org...If I understand right, PHP5 has an exception
handling mechanism but it is only for "manual" using, i.e.
a programmer can use try/catch but only for own code.
PHP's built-in functions and functions from extensions still
use old "return value" method. Yes?--
PHP General Mailing List (http://www.php.net/)I bloody hope not or what is the point ?
In the current version of PHP, many built-in functions (if not all?)
return FALSE
on an error and some resource/handle on a success.
So, instead of coding like this:
...
$res = some_builtin_func(); // func does not raise exception on error
if (!$res)
throw new Exception(); // so I throw it manually
...
I want to write:
...
$res = some_builtin_func(); // func raises exception on error
// so I don't need to write additional lines
...
So will PHP5 (or future versions) work as in my 2nd example?
<snip>news:49201.203.15.102.65.1081404627.squirrel@www.electroteque.org...
If I understand right, PHP5 has an exception
handling mechanism but it is only for "manual" using, i.e.
a programmer can use try/catch but only for own code.
PHP's built-in functions and functions from extensions still
use old "return value" method. Yes?I bloody hope not or what is the point ?
I want to write:
...
$res = some_builtin_func(); // func raises exception on error
// so I don't need to write additional lines
...So will PHP5 (or future versions) work as in my 2nd example?
No
regards,
Derick
"Derick Rethans" derick@php.net wrote in message
news:Pine.LNX.4.58.0404081244590.9058@localhost...
<snip>news:49201.203.15.102.65.1081404627.squirrel@www.electroteque.org...
If I understand right, PHP5 has an exception
handling mechanism but it is only for "manual" using, i.e.
a programmer can use try/catch but only for own code.
PHP's built-in functions and functions from extensions still
use old "return value" method. Yes?I bloody hope not or what is the point ?
I want to write:
...
$res = some_builtin_func(); // func raises exception on error
// so I don't need to write additional lines
...So will PHP5 (or future versions) work as in my 2nd example?
No
regards,
Derick
"Zend Engine. Version 2. Feature Overview and Design." PDF says
that:
...
Compatibility notes
No compatibility problems exist, as this feature doesn't exist in previous
versions of the
scripting engine. In order to simplify error handling in the existing code
base, the engine
will support a mode in which errors (such as E_WARNING
and E_NOTICE) will
raise
exceptions, instead of displaying an error. This will allow users to use one
try..catch
statement to recover from any possible errors during the course of a large
code block
(e.g., establishing a connection to a database server, selecting a database,
and issuing a
query), without having to add lots of error-handling code.
...
Is it not what I'm talking about?
Is it not what I'm talking about?
This document is outdated in much more things then only this. Forget
about it.
Derick
I want to write:
...
$res = some_builtin_func(); // func raises exception on error
// so I don't need to write additional lines
...So will PHP5 (or future versions) work as in my 2nd example?
No
It would be a nice feature to let the user decide whether to throw
exceptions when errors are triggered:
// either ERROR_TRIGGER or ERROR_EXCEPTION
error_handling(ERROR_EXCEPTION);
// Don't throw exceptions for notices or warnings
error_reporting(E_ERROR);
try {
mysql_connect()
}
catch (Notice $e) {
echo 'Notice: ' . $e->getMessage();
}
catch (Warning $e) {
echo 'Warning: ' . $e->getMessage();
}
catch (Error $e) {
echo 'Error: ' . $e->getMessage();
}
catch (Exception $e) {
echo 'Unknown exception: ' . $e->getMessage();
}
--
Ferdinand Beyer
<fb@fbeyer.com
I want to write:
...
$res = some_builtin_func(); // func raises exception on error
// so I don't need to write additional lines
...So will PHP5 (or future versions) work as in my 2nd example?
No
It would be a nice feature to let the user decide whether to throw
exceptions when errors are triggered:
NO!
Derick