Marcin
Mierzwa
PHP Developer, It
Production
Temat: Wywołanie catch(Exception $e)
Witam wszystkich,Czy ktoś może mi odpowiedzieć jaki mechanizm czy wzorzec projektowy odpowiada za sytuację poniżej ?
Rzucam wyjątkiem klasy TestException (wywołanie funckji test()).
W bloku 'catch' wstawiam obiekt klasy Exception, nie TestException:
catch(Exception $e).
Mimo to moge wywołać na obiekcie $e metodę klasy TestException:
var_dump($e->get());
Dlaczego ?
TestException dziedziczy po Exception, a nie na odwrót i normalnie nie można
wywołać metody klasy podrzędnej na obiekcie klasy nadrzędnej.
class TestException extends Exception {
public function get() {
echo 'Metoda get() klasy TestException';
}
}
function test() {
throw new TestException('test');
}
try {
test();
} catch (Exception $e) {
var_dump($e->get());
}Ten post został edytowany przez Autora dnia 28.08.14 o godzinie 13:42