Hab gerade etwas mit dem Error-Handling von PHP5 rumgespielt und verstehe nicht, wieso die Exception "Was soll das denn?" nicht an den übergeordneten Try/Catch-Block Re-Thrown wird. Kann mir wer auf die Sprünge helfen?
Das Beispiel ist natürlich etwas konstruiert:
PHP-Code:
<?php
class MathError extends Exception {}
class InputError extends Exception {}
class Math {
public $lastresult;
function __construct() {
$lastresult = 0;
}
function devidetime($devider) {
if(!is_int($devider)) throw new InputError('Eingabe muss eine Zahl sein!');
if($devider == 0) throw new MathError('Durch 0 geteilt!');
if($devider == 2000) throw new Exception('Was soll das denn?');
return (time() / $devider);
}
}
$Math = new Math;
try {
echo 'Ergebnis: '.$Math->devidetime('bla');
} catch (InputError $i) {
echo 'Error: '.$i->getMessage().' 2000 gesetzt.';
try {
echo 'Ergebnis: '.$Math->devidetime(2000);
} catch (Exception $e) {
throw($e);
}
} catch(MathError $m) {
echo 'Error: '.$m->getMessage();
} catch(Exception $e) {
echo $e->getMessage();
}
?>
Gruß
Johannes