|
From: <php...@li...> - 2009-07-06 05:15:27
|
Hi,
Since PHP/java Bridge version 5.4.4.2.1 any undeclared exception terminates
the script immediately. For example:
try {
echo new java("java.lang.String", null);
} catch (JavaException { ... }
=> PHP Fatal Error: Undeclared RuntimeException: NullPointerException.
I hope this will stop PHP programmers to (ab)use java.lang.RuntimeException
as some kind of "easy to use" application-level exception.
Regards,
Jost Boekemeier
3. Jul 2009 2:08 nachm. schrieb am <
php...@li...>:
Ok, but then it is not working consistently. RuntimeException is thrown in
first case below, but not in third.
try { $val = $javaObjOrClass->throwIfTrue(true) } catch(Exception $ex)
{//catched nicely here } tr...
And consistent or not with other containers, I think this makes life much
harder on PHP side. To be safe one should do in some cases something like:
try {
$obj = $java->methodA($arg);
$rex = java_values($obj);
if ($rex instanceof Exception)
throw $rex;
$val = $obj->methodB();
...
} catch (Exception $ex) {
// handle exception
}
instead of:
try {
$val = $java->methodA($arg)->methodB();
...
} catch (Exception $ex) {
// handle exception
}
---
Juha
Undeclared exceptions are not handled. This is consistent with other JEE
containers. [Undeclared]...
|